feat: expose per-server default plays setting

This commit is contained in:
mmacierzanka committed 2026-08-21 16:32:41 +02:00
1 parent 36621ce261
commit 004641c9b8
7 files changed
+91 -1

No files matched your search

-1
View File
@@ -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
+17
View File
@@ -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,