misc
This commit is contained in:
parent
88d870ce8f
commit
128019423b
@ -242,6 +242,15 @@ class ValidRadioSongRequest(BaseModel):
|
||||
artistsong: str | None = None
|
||||
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):
|
||||
"""
|
||||
- **key**: API Key
|
||||
|
@ -11,7 +11,8 @@ import regex
|
||||
import music_tag
|
||||
from . import radio_util
|
||||
from .constructors import ValidRadioNextRequest, ValidRadioReshuffleRequest, ValidRadioQueueShiftRequest,\
|
||||
ValidRadioQueueRemovalRequest, ValidRadioSongRequest, RadioException
|
||||
ValidRadioQueueRemovalRequest, ValidRadioSongRequest,\
|
||||
ValidRadioQueueGetRequest, RadioException
|
||||
from uuid import uuid4 as uuid
|
||||
from typing import Optional, LiteralString
|
||||
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
|
||||
|
||||
|
||||
"""
|
||||
TODO:
|
||||
- Radio request typeahead
|
||||
"""
|
||||
|
||||
class Radio(FastAPI):
|
||||
"""Radio Endpoints"""
|
||||
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")
|
||||
if 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:
|
||||
await self.radio_util.load_playlist()
|
||||
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({
|
||||
'pos': x,
|
||||
'id': item.get('id'),
|
||||
@ -189,7 +196,7 @@ class Radio(FastAPI):
|
||||
else:
|
||||
await self.radio_util.load_playlist()
|
||||
|
||||
self.radio_util.now_playing: dict = next
|
||||
self.radio_util.now_playing = next
|
||||
next['start'] = time_started
|
||||
next['end'] = time_ends
|
||||
try:
|
||||
|
Loading…
x
Reference in New Issue
Block a user