feat: add basic interface and cleanup

This commit is contained in:
Radu C. Martin 2025-04-11 19:37:03 +02:00
parent 573429acd2
commit c8abb8943e
4 changed files with 211 additions and 53 deletions

23
main.py
View file

@ -1,9 +1,10 @@
from enum import Enum
from fastapi import FastAPI
from fastapi.responses import HTMLResponse
from download_service import DownloadService
from music_player import MusicPlayer
from music_player import MusicPlayer, PlayerState
class ChangePlayerState(Enum):
@ -25,9 +26,16 @@ player = MusicPlayer()
dl_service = DownloadService()
# Interface
@app.get("/", response_class=HTMLResponse)
async def root():
with open("interface.html") as f:
return f.read()
# Experimental
@app.get("/queue", tags=["queue"])
def play_music():
def get_queue():
return player.get_queue()
@ -57,6 +65,11 @@ def player_stop():
player.stop()
@app.post("/player/skip", tags=["player"])
def player_skip():
player.next()
# Player
@app.put("/player/volume", tags=["player"])
def set_volume(volume: float):
@ -68,6 +81,6 @@ def get_volume():
return {"volume": player.get_volume()}
@app.get("/player/state", tags=["player"])
def get_state():
return {"state": player.get_state(), "current_track": player.get_current_track()}
@app.get("/player", tags=["player"])
def get_player_state() -> PlayerState:
return player.get_state()