misc
This commit is contained in:
parent
88d870ce8f
commit
128019423b
@ -242,6 +242,15 @@ class ValidRadioSongRequest(BaseModel):
|
|||||||
artistsong: str | None = None
|
artistsong: str | None = None
|
||||||
alsoSkip: bool = False
|
alsoSkip: bool = False
|
||||||
|
|
||||||
|
class ValidRadioQueueGetRequest(BaseModel):
|
||||||
|
"""
|
||||||
|
- **key**: API key (optional, needed if specifying a non-default limit)
|
||||||
|
- **limit**: optional, default: 15k
|
||||||
|
"""
|
||||||
|
|
||||||
|
key: str|None = None
|
||||||
|
limit: int|None = 15000
|
||||||
|
|
||||||
class ValidRadioNextRequest(BaseModel):
|
class ValidRadioNextRequest(BaseModel):
|
||||||
"""
|
"""
|
||||||
- **key**: API Key
|
- **key**: API Key
|
||||||
|
@ -11,7 +11,8 @@ import regex
|
|||||||
import music_tag
|
import music_tag
|
||||||
from . import radio_util
|
from . import radio_util
|
||||||
from .constructors import ValidRadioNextRequest, ValidRadioReshuffleRequest, ValidRadioQueueShiftRequest,\
|
from .constructors import ValidRadioNextRequest, ValidRadioReshuffleRequest, ValidRadioQueueShiftRequest,\
|
||||||
ValidRadioQueueRemovalRequest, ValidRadioSongRequest, RadioException
|
ValidRadioQueueRemovalRequest, ValidRadioSongRequest,\
|
||||||
|
ValidRadioQueueGetRequest, RadioException
|
||||||
from uuid import uuid4 as uuid
|
from uuid import uuid4 as uuid
|
||||||
from typing import Optional, LiteralString
|
from typing import Optional, LiteralString
|
||||||
from fastapi import FastAPI, BackgroundTasks, Request, Response, HTTPException
|
from fastapi import FastAPI, BackgroundTasks, Request, Response, HTTPException
|
||||||
@ -20,6 +21,11 @@ from aiohttp import ClientSession, ClientTimeout
|
|||||||
# pylint: disable=bare-except, broad-exception-caught, invalid-name
|
# pylint: disable=bare-except, broad-exception-caught, invalid-name
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
TODO:
|
||||||
|
- Radio request typeahead
|
||||||
|
"""
|
||||||
|
|
||||||
class Radio(FastAPI):
|
class Radio(FastAPI):
|
||||||
"""Radio Endpoints"""
|
"""Radio Endpoints"""
|
||||||
def __init__(self, app: FastAPI, my_util, constants, glob_state) -> None: # pylint: disable=super-init-not-called
|
def __init__(self, app: FastAPI, my_util, constants, glob_state) -> None: # pylint: disable=super-init-not-called
|
||||||
@ -59,7 +65,7 @@ class Radio(FastAPI):
|
|||||||
raise HTTPException(status_code=403, detail="Unauthorized")
|
raise HTTPException(status_code=403, detail="Unauthorized")
|
||||||
if data.skipTo:
|
if data.skipTo:
|
||||||
(x, _) = self.radio_util.get_queue_item_by_uuid(data.skipTo)
|
(x, _) = self.radio_util.get_queue_item_by_uuid(data.skipTo)
|
||||||
self.radio_util.active_playlist: list = self.radio_util.active_playlist[x:]
|
self.radio_util.active_playlist = self.radio_util.active_playlist[x:]
|
||||||
if not self.radio_util.active_playlist:
|
if not self.radio_util.active_playlist:
|
||||||
await self.radio_util.load_playlist()
|
await self.radio_util.load_playlist()
|
||||||
return await self.radio_util._ls_skip()
|
return await self.radio_util._ls_skip()
|
||||||
@ -81,12 +87,13 @@ class Radio(FastAPI):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async def radio_get_queue(self, request: Request, limit: int = 20_000) -> dict:
|
async def radio_get_queue(self, request: Request, limit: Optional[int] = 15_000) -> dict:
|
||||||
"""
|
"""
|
||||||
Get current play queue, up to limit n [default: 20k]
|
Get current play queue, up to limit [default: 15k]
|
||||||
"""
|
"""
|
||||||
queue_out = []
|
|
||||||
for x, item in enumerate(self.radio_util.active_playlist[0:limit+1]):
|
queue_out: list[dict] = []
|
||||||
|
for x, item in enumerate(self.radio_util.active_playlist[0:limit]):
|
||||||
queue_out.append({
|
queue_out.append({
|
||||||
'pos': x,
|
'pos': x,
|
||||||
'id': item.get('id'),
|
'id': item.get('id'),
|
||||||
@ -189,7 +196,7 @@ class Radio(FastAPI):
|
|||||||
else:
|
else:
|
||||||
await self.radio_util.load_playlist()
|
await self.radio_util.load_playlist()
|
||||||
|
|
||||||
self.radio_util.now_playing: dict = next
|
self.radio_util.now_playing = next
|
||||||
next['start'] = time_started
|
next['start'] = time_started
|
||||||
next['end'] = time_ends
|
next['end'] = time_ends
|
||||||
try:
|
try:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user