mirror of
https://github.com/tcsenpai/swingmusic.git
synced 2025-06-17 00:10:15 +00:00
43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
"""
|
|
Contains all the track routes.
|
|
"""
|
|
from app import api
|
|
from app import instances
|
|
from flask import Blueprint
|
|
from flask import send_file
|
|
|
|
track_bp = Blueprint("track", __name__, url_prefix="/")
|
|
|
|
|
|
@track_bp.route("/file/<trackid>")
|
|
def send_track_file(trackid):
|
|
"""
|
|
Returns an audio file that matches the passed id to the client.
|
|
"""
|
|
try:
|
|
files = []
|
|
for f in api.DB_TRACKS:
|
|
try:
|
|
if f["_id"]["$oid"] == trackid:
|
|
files.append(f["filepath"])
|
|
except KeyError:
|
|
# Bug: some albums are not found although they exist in `api.ALBUMS`. It has something to do with the bisection method used or sorting. Not sure yet.
|
|
pass
|
|
|
|
filepath = files[0]
|
|
except IndexError:
|
|
return "File not found", 404
|
|
|
|
return send_file(filepath, mimetype="audio/mp3")
|
|
|
|
|
|
@track_bp.route("/sample")
|
|
def get_sample_track():
|
|
"""
|
|
Returns a sample track object.
|
|
"""
|
|
|
|
return instances.tracks_instance.get_song_by_album(
|
|
"Legends Never Die", "Juice WRLD"
|
|
)
|