diff --git a/server/app/api/playlist.py b/server/app/api/playlist.py index 8eb99ce3..ab49269a 100644 --- a/server/app/api/playlist.py +++ b/server/app/api/playlist.py @@ -1,14 +1,15 @@ """ Contains all the playlist routes. """ - from datetime import datetime -from flask import Blueprint, request -from app import instances, api -from app.lib import playlistlib -from app import models +from app import api from app import exceptions +from app import instances +from app import models from app import serializer +from app.lib import playlistlib +from flask import Blueprint +from flask import request playlist_bp = Blueprint("playlist", __name__, url_prefix="/") diff --git a/server/app/db/playlists.py b/server/app/db/playlists.py index 94430be4..ca081062 100644 --- a/server/app/db/playlists.py +++ b/server/app/db/playlists.py @@ -1,8 +1,8 @@ """ This file contains the Playlists class for interacting with the playlist documents in MongoDB. """ - -from app import db, models +from app import db +from app import models from bson import ObjectId convert_many = db.convert_many @@ -23,8 +23,12 @@ class Playlists(db.Mongo): Inserts a new playlist object into the database. """ return self.collection.update_one( - {"name": playlist["name"]}, - {"$set": playlist}, + { + "name": playlist["name"] + }, + { + "$set": playlist + }, upsert=True, ).upserted_id @@ -49,7 +53,9 @@ class Playlists(db.Mongo): return self.collection.update_one( {"_id": ObjectId(playlistid)}, - {"$push": {"pre_tracks": track}}, + {"$push": { + "pre_tracks": track + }}, ) def get_playlist_by_name(self, name: str) -> dict: @@ -66,4 +72,4 @@ class Playlists(db.Mongo): return self.collection.update_one( {"_id": ObjectId(playlistid)}, {"$set": playlist}, - ) \ No newline at end of file + ) diff --git a/server/app/lib/playlistlib.py b/server/app/lib/playlistlib.py index 26190028..355ef9ad 100644 --- a/server/app/lib/playlistlib.py +++ b/server/app/lib/playlistlib.py @@ -5,12 +5,17 @@ This library contains all the functions related to playlists. import os import random import string -from PIL import Image, ImageSequence + +from app import api +from app import exceptions +from app import instances +from app import models +from app import settings +from app.lib import trackslib +from PIL import Image +from PIL import ImageSequence from progress.bar import Bar from werkzeug import datastructures -from app import api, instances, models, exceptions, settings - -from app.lib import trackslib TrackExistsInPlaylist = exceptions.TrackExistsInPlaylist @@ -31,7 +36,8 @@ def add_track(playlistid: str, trackid: str): try: playlist.add_track(track) - instances.playlist_instance.add_track_to_playlist(playlistid, track) + instances.playlist_instance.add_track_to_playlist( + playlistid, track) return except TrackExistsInPlaylist as e: return {"error": str(e)}, 409 @@ -63,7 +69,8 @@ def save_p_image(file: datastructures.FileStorage, pid: str): """ img = Image.open(file) - random_str = "".join(random.choices(string.ascii_letters + string.digits, k=5)) + random_str = "".join( + random.choices(string.ascii_letters + string.digits, k=5)) img_path = pid + str(random_str) + ".webp" full_path = os.path.join(settings.APP_DIR, "images", "playlists", img_path) diff --git a/server/app/models.py b/server/app/models.py index 185284a2..3eeb3ca5 100644 --- a/server/app/models.py +++ b/server/app/models.py @@ -1,9 +1,11 @@ """ Contains all the models for objects generation and typing. """ - -from dataclasses import dataclass, field +from dataclasses import dataclass +from dataclasses import field +from datetime import date from typing import List + from app import api from app import settings from app.exceptions import TrackExistsInPlaylist @@ -71,11 +73,9 @@ class Album: def get_p_track(ptrack): for track in api.TRACKS: - if ( - track.title == ptrack["title"] - and track.artists == ptrack["artists"] - and ptrack["album"] == track.album - ): + if (track.title == ptrack["title"] + and track.artists == ptrack["artists"] + and ptrack["album"] == track.album): return track diff --git a/server/app/settings.py b/server/app/settings.py index 6fbc2494..2ad51f17 100644 --- a/server/app/settings.py +++ b/server/app/settings.py @@ -9,14 +9,12 @@ HOME_DIR = os.path.expanduser("~") APP_DIR = os.path.join(HOME_DIR, CONFIG_FOLDER) THUMBS_PATH = os.path.join(APP_DIR, "images", "thumbnails") - # URL IMG_BASE_URI = "http://127.0.0.1:8900/images/" IMG_ARTIST_URI = IMG_BASE_URI + "artists/" IMG_THUMB_URI = IMG_BASE_URI + "thumbnails/" IMG_PLAYLIST_URI = IMG_BASE_URI + "playlists/" - # defaults DEFAULT_ARTIST_IMG = IMG_ARTIST_URI + "0.webp"