swingmusic/server/app/api/folder.py
2022-04-03 13:47:28 +03:00

41 lines
883 B
Python

"""
Contains all the folder routes.
"""
import datetime
import os
from app import api
from app import helpers
from app import settings
from app.lib import folderslib
from flask import Blueprint
from flask import request
folder_bp = Blueprint("folder", __name__, url_prefix="/")
@folder_bp.route("/folder", methods=["POST"])
def get_folder_tree():
"""
Returns a list of all the folders and tracks in the given folder.
"""
data = request.get_json()
req_dir = data["folder"]
if req_dir == "$home":
req_dir = settings.HOME_DIR
folders = folderslib.get_subdirs(req_dir)
songs = []
for track in api.TRACKS:
if track.folder == req_dir:
songs.append(track)
final_tracks = helpers.remove_duplicates(songs)
return {
"tracks": final_tracks,
"folders": sorted(folders, key=lambda i: i.name),
}