radio typeahead
This commit is contained in:
@ -7,7 +7,8 @@ import random
|
||||
import asyncio
|
||||
from . import radio_util
|
||||
from .constructors import ValidRadioNextRequest, ValidRadioReshuffleRequest, ValidRadioQueueShiftRequest,\
|
||||
ValidRadioQueueRemovalRequest, ValidRadioSongRequest, RadioException
|
||||
ValidRadioQueueRemovalRequest, ValidRadioSongRequest,\
|
||||
ValidRadioTypeaheadRequest, RadioException
|
||||
from uuid import uuid4 as uuid
|
||||
from typing import Optional
|
||||
from fastapi import FastAPI, BackgroundTasks, Request, Response, HTTPException
|
||||
@ -30,6 +31,7 @@ class Radio(FastAPI):
|
||||
self.endpoints: dict = {
|
||||
"radio/np": self.radio_now_playing,
|
||||
"radio/request": self.radio_request,
|
||||
"radio/typeahead": self.radio_typeahead,
|
||||
"radio/get_queue": self.radio_get_queue,
|
||||
"radio/skip": self.radio_skip,
|
||||
"radio/queue_shift": self.radio_queue_shift,
|
||||
@ -289,4 +291,20 @@ class Radio(FastAPI):
|
||||
await self.radio_util._ls_skip()
|
||||
return JSONResponse(content={
|
||||
'result': search
|
||||
})
|
||||
})
|
||||
|
||||
async def radio_typeahead(self, data: ValidRadioTypeaheadRequest,
|
||||
request: Request) -> JSONResponse:
|
||||
"""
|
||||
Radio typehead handler
|
||||
- **query**: Typeahead query
|
||||
"""
|
||||
if not isinstance(data.query, str):
|
||||
return JSONResponse(status_code=500, content={
|
||||
'err': True,
|
||||
'errorText': 'Invalid request.',
|
||||
})
|
||||
typeahead = await self.radio_util.trackdb_typeahead(data.query)
|
||||
if not typeahead:
|
||||
return JSONResponse(content=[])
|
||||
return JSONResponse(content=typeahead)
|
Reference in New Issue
Block a user