Something went wrong. Try again.
A local, collaborative music player (main-branch-only mirror of forge.ejuarezg.com/ejuarezg/jam-session)
Something went wrong. Try again.
746 B · 30 lines
Python
at main
12345678910111213141516171819202122232425262728293031import uuidfrom datetime import datetime, timezonefrom typing import Optional
from pydantic import BaseModel, Field
class Track(BaseModel): id: str = Field(default_factory=lambda: str(uuid.uuid4())) title: str duration: Optional[int] = None stream_url: str thumbnail: Optional[str] = None source_id: str webpage_url: str added_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
class QueueState(BaseModel): queue: list[Track] = [] current_track: Optional[Track] = None paused: bool = False playback_time: float = 0.0 nicknames: dict[str, str] = {} held_nicknames: dict[str, str] = {}
class WSMessage(BaseModel): type: str payload: Optional[dict] = {}