Pyrite/pyrite.py

85 lines
3.5 KiB
Python
Raw Permalink Normal View History

2024-10-29 10:53:46 -04:00
#!/usr/bin/env python3
"""
A music steaming application.
"""
import random
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
from fastapi.staticfiles import StaticFiles
from fastapi.responses import HTMLResponse
#import buckler_fastapi
app = FastAPI()
#app.add_middleware(buckler_fastapi.BucklerSessionMiddleware)
app.mount("/static", StaticFiles(directory="static"), name="static")
templates = Jinja2Templates(directory="templates")
@app.get("/", response_class=HTMLResponse)
async def index(request: Request):
context = {"request": request}
return templates.TemplateResponse('index.html', context)
2024-11-12 13:49:35 -05:00
@app.get("/player", response_class=HTMLResponse)
async def player(request: Request):
context = {"request": request}
return templates.TemplateResponse('player.html', context)
2024-10-29 10:53:46 -04:00
@app.get("/rand_track/")
async def get_rand_track():
"""Return a random track."""
tracks = [{
'title': "Blade Runner",
'artist': "Beast In Black",
'album': "Dark Connection",
'source': "https://steelbea.me/scorch_test/library/Beast%20In%20Black/Beast%20In%20Black%20-%20Dark%20Connection%20%282021%29%20%5BFLAC%5D%20%7BNB62072%7D/01%20-%20Blade%20Runner.opus",
'artwork': [{
'src': "https://steelbea.me/scorch_test/library/Beast%20In%20Black/Beast%20In%20Black%20-%20Dark%20Connection%20%282021%29%20%5BFLAC%5D%20%7BNB62072%7D/folder-256x256.jpg",
'sizes': "256x256",
'type': "image/jpeg"
}]
}, {
'title': "Bella Donna",
'artist': "Beast In Black",
'album': "Dark Connection",
'source': "https://steelbea.me/scorch_test/library/Beast%20In%20Black/Beast%20In%20Black%20-%20Dark%20Connection%20%282021%29%20%5BFLAC%5D%20%7BNB62072%7D/02%20-%20Bella%20Donna.opus",
'artwork': [{
'src': "https://steelbea.me/scorch_test/library/Beast%20In%20Black/Beast%20In%20Black%20-%20Dark%20Connection%20%282021%29%20%5BFLAC%5D%20%7BNB62072%7D/folder-256x256.jpg",
'sizes': "256x256",
'type': "image/jpeg"
}]
}, {
'title': "Highway To Mars",
'artist': "Beast In Black",
'album': "Dark Connection",
'source': "https://steelbea.me/scorch_test/library/Beast%20In%20Black/Beast%20In%20Black%20-%20Dark%20Connection%20%282021%29%20%5BFLAC%5D%20%7BNB62072%7D/03%20-%20Highway%20To%20Mars.opus",
'artwork': [{
'src': "https://steelbea.me/scorch_test/library/Beast%20In%20Black/Beast%20In%20Black%20-%20Dark%20Connection%20%282021%29%20%5BFLAC%5D%20%7BNB62072%7D/folder-256x256.jpg",
'sizes': "256x256",
'type': "image/jpeg"
}]
}, {
'title': "Hardcore",
'artist': "Beast In Black",
'album': "Dark Connection",
'source': "https://steelbea.me/scorch_test/library/Beast%20In%20Black/Beast%20In%20Black%20-%20Dark%20Connection%20%282021%29%20%5BFLAC%5D%20%7BNB62072%7D/04%20-%20Hardcore.opus",
'artwork': [{
'src': "https://steelbea.me/scorch_test/library/Beast%20In%20Black/Beast%20In%20Black%20-%20Dark%20Connection%20%282021%29%20%5BFLAC%5D%20%7BNB62072%7D/folder-256x256.jpg",
'sizes': "256x256",
'type': "image/jpeg"
}]
}, {
'title': "One Night In Tokyo",
'artist': "Beast In Black",
'album': "Dark Connection",
'source': "https://steelbea.me/scorch_test/library/Beast%20In%20Black/Beast%20In%20Black%20-%20Dark%20Connection%20%282021%29%20%5BFLAC%5D%20%7BNB62072%7D/05%20-%20One%20Night%20In%20Tokyo.opus",
'artwork': [{
'src': "https://steelbea.me/scorch_test/library/Beast%20In%20Black/Beast%20In%20Black%20-%20Dark%20Connection%20%282021%29%20%5BFLAC%5D%20%7BNB62072%7D/folder-256x256.jpg",
'sizes': "256x256",
'type': "image/jpeg"
}]
}]
return random.choice(tracks)