feat: expose per-server default plays setting
This commit is contained in:
7 files changed
+91
-1
No files matched your search
@@ -59,7 +59,6 @@ class MusicPlayer:
|
||||
def is_ready(self) -> bool:
|
||||
return self._bot.is_ready()
|
||||
|
||||
@property
|
||||
@property
|
||||
def default_plays(self) -> int:
|
||||
"""Legacy fallback used when no guild context is available."""
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class DefaultPlaysRequest(BaseModel):
|
||||
"""Domyślna liczba odtworzeń nowych utworów."""
|
||||
|
||||
default_plays: int
|
||||
@@ -13,6 +13,7 @@ from zyrarbot.ui.api.dependencies import (
|
||||
get_player,
|
||||
get_settings,
|
||||
)
|
||||
from zyrarbot.ui.api.requests.default_plays_request import DefaultPlaysRequest
|
||||
from zyrarbot.ui.api.requests.jump_request import JumpRequest
|
||||
from zyrarbot.ui.api.requests.remove_request import RemoveRequest
|
||||
from zyrarbot.ui.api.requests.reorder_request import ReorderRequest
|
||||
@@ -22,6 +23,22 @@ from zyrarbot.ui.api.status_broadcaster import StatusBroadcaster
|
||||
router = APIRouter(prefix="/api", tags=["queue"])
|
||||
|
||||
|
||||
@router.post("/default_plays")
|
||||
async def set_default_plays(
|
||||
request: DefaultPlaysRequest,
|
||||
guild: discord.Guild = Depends(get_active_guild),
|
||||
player: MusicPlayer = Depends(get_player),
|
||||
settings: Settings = Depends(get_settings),
|
||||
broadcaster: StatusBroadcaster = Depends(get_broadcaster),
|
||||
) -> dict[str, int | str]:
|
||||
if not settings.is_valid_plays(request.default_plays):
|
||||
raise HTTPException(status_code=400, detail="Invalid default plays value")
|
||||
|
||||
player.set_default_plays(guild.id, request.default_plays)
|
||||
await broadcaster.broadcast()
|
||||
return {"status": "success", "default_plays": request.default_plays}
|
||||
|
||||
|
||||
@router.post("/jump")
|
||||
async def jump(
|
||||
request: JumpRequest,
|
||||
|
||||
Reference in new issue
Block a user