swingmusic/server/app/trackslib.py
2022-03-07 20:16:35 +03:00

48 lines
1.2 KiB
Python

import os
from trace import Trace
from typing import List
from app import models, instances
from app import albumslib
from app.helpers import remove_duplicates
TRACKS: List[models.Track] = []
def create_all_tracks() -> List[models.Track]:
"""
Gets all songs under the ~/ directory.
"""
print("Getting all songs...")
tracks: list[models.Track] = []
for track in instances.songs_instance.get_all_songs():
# print(track)
# print(albumslib.ALBUMS)
try:
os.chmod(track["filepath"], 0o755)
except FileNotFoundError:
instances.songs_instance.remove_song_by_filepath(track["filepath"])
album = albumslib.find_album(track["album"], track["albumartist"])
# print(album)
# print(track["album"], track["albumartist"])
track["image"] = album.image
tracks.append(models.Track(track))
TRACKS.clear()
TRACKS.extend(tracks)
def get_album_tracks(albumname, artist):
"""Returns all tracks matching an album"""
_tracks: List[models.Track] = []
for track in TRACKS:
if track.album == albumname and track.albumartist == artist:
_tracks.append(track)
return remove_duplicates(_tracks)