feat: streamlit api
This commit is contained in:
parent
bdf44bcd94
commit
573429acd2
3 changed files with 74 additions and 61 deletions
49
main.py
49
main.py
|
@ -1,7 +1,6 @@
|
|||
from enum import Enum
|
||||
|
||||
from fastapi import FastAPI
|
||||
from pygame.mixer import music
|
||||
|
||||
from download_service import DownloadService
|
||||
from music_player import MusicPlayer
|
||||
|
@ -10,15 +9,10 @@ from music_player import MusicPlayer
|
|||
class ChangePlayerState(Enum):
|
||||
play = "play"
|
||||
pause = "pause"
|
||||
unpause = "unpause"
|
||||
resume = "resume"
|
||||
stop = "stop"
|
||||
|
||||
|
||||
class Songs(Enum):
|
||||
era = "era.mp3"
|
||||
royal_beggars = "royal-beggars.mp3"
|
||||
|
||||
|
||||
queue: list[str] = []
|
||||
|
||||
tags_metadata = [
|
||||
|
@ -32,22 +26,37 @@ dl_service = DownloadService()
|
|||
|
||||
|
||||
# Experimental
|
||||
@app.get("/test/player/queue", tags=["experimental"])
|
||||
@app.get("/queue", tags=["queue"])
|
||||
def play_music():
|
||||
return player.get_queue()
|
||||
|
||||
|
||||
@app.post("/test/queue", tags=["experimental"])
|
||||
@app.post("/queue", tags=["queue"])
|
||||
def post_to_queue(url: str):
|
||||
track = dl_service.download(url)
|
||||
player.add_to_queue(track)
|
||||
|
||||
|
||||
@app.post("/player/play", tags=["experimental"])
|
||||
def play():
|
||||
@app.post("/player/play", tags=["player"])
|
||||
def player_play():
|
||||
player.play()
|
||||
|
||||
|
||||
@app.post("/player/pause", tags=["player"])
|
||||
def player_pause():
|
||||
player.pause()
|
||||
|
||||
|
||||
@app.post("/player/resume", tags=["player"])
|
||||
def player_resume():
|
||||
player.resume()
|
||||
|
||||
|
||||
@app.post("/player/stop", tags=["player"])
|
||||
def player_stop():
|
||||
player.stop()
|
||||
|
||||
|
||||
# Player
|
||||
@app.put("/player/volume", tags=["player"])
|
||||
def set_volume(volume: float):
|
||||
|
@ -59,24 +68,6 @@ def get_volume():
|
|||
return {"volume": player.get_volume()}
|
||||
|
||||
|
||||
@app.patch("/player/state", tags=["player"])
|
||||
def update_state(status: ChangePlayerState):
|
||||
match status:
|
||||
case ChangePlayerState.play:
|
||||
music.play()
|
||||
case ChangePlayerState.pause:
|
||||
music.pause()
|
||||
case ChangePlayerState.unpause:
|
||||
music.unpause()
|
||||
case ChangePlayerState.stop:
|
||||
music.stop()
|
||||
|
||||
|
||||
@app.get("/player/state", tags=["player"])
|
||||
def get_state():
|
||||
return {"state": player.get_state(), "current_track": player.get_current_track()}
|
||||
|
||||
|
||||
@app.post("/queue", tags=["queue"])
|
||||
def add_to_queue(filename: str):
|
||||
queue.append(filename)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue