diff --git a/package.json b/package.json index 1397fad3..ecafb20a 100644 --- a/package.json +++ b/package.json @@ -10,26 +10,21 @@ }, "dependencies": { "@vueuse/core": "^8.5.0", - "@vueuse/motion": "^2.0.0-beta.18", "axios": "^0.26.1", - "defu": "^6.0.0", - "mitt": "^3.0.0", "pinia": "^2.0.11", - "register-service-worker": "^1.7.1", "sass": "^1.49.0", "sass-loader": "^10", "vite-svg-loader": "^3.4.0", - "vue": "^3.0.0", + "vue": "^3.2.37", "vue-debounce": "^3.0.2", - "vue-router": "^4.0.0-0", - "webpack": "^5.64.4" + "vue-router": "^4.1.3", + "webpack": "^5.74.0" }, "devDependencies": { - "@vitejs/plugin-vue": "^1.6.1", - "@vue/compiler-sfc": "^3.0.0", + "@vitejs/plugin-vue": "^3.0.1", "eslint": "^8.7.0", "eslint-plugin-vue": "^8.3.0", - "vite": "^2.5.4", + "vite": "^3.0.4", "vue-svg-loader": "^0.16.0" }, "packageManager": "yarn@3.1.1" diff --git a/server/app/api/album.py b/server/app/api/album.py index d2bd9c11..80e14b5e 100644 --- a/server/app/api/album.py +++ b/server/app/api/album.py @@ -68,7 +68,7 @@ def get_album(): album.count == 1 and tracks[0].title == album.title and tracks[0].tracknumber == 1 - and tracks[0].disknumber == 1 + and tracks[0].discnumber == 1 ): album.is_single = True diff --git a/server/app/api/folder.py b/server/app/api/folder.py index 6d1e99dc..1cbb0570 100644 --- a/server/app/api/folder.py +++ b/server/app/api/folder.py @@ -1,8 +1,6 @@ """ Contains all the folder routes. """ -from app import api -from app import helpers from app import settings from app.lib.folderslib import getFnF from flask import Blueprint diff --git a/server/app/functions.py b/server/app/functions.py index 116d9745..daf2ae07 100644 --- a/server/app/functions.py +++ b/server/app/functions.py @@ -97,7 +97,7 @@ class CheckArtistImages: @staticmethod def check_if_exists(img_path: str): """ - Checks if an image exists on disk. + Checks if an image exists on c. """ if os.path.exists(img_path): diff --git a/server/app/lib/albumslib.py b/server/app/lib/albumslib.py index 6e196523..efb39446 100644 --- a/server/app/lib/albumslib.py +++ b/server/app/lib/albumslib.py @@ -143,6 +143,7 @@ def create_album(track: models.Track) -> dict: "title": track.album, "artist": track.albumartist, "hash": track.albumhash, + "copyright": track.copyright, } album["date"] = track.date diff --git a/server/app/lib/taglib.py b/server/app/lib/taglib.py index 8cd6280e..055c6f14 100644 --- a/server/app/lib/taglib.py +++ b/server/app/lib/taglib.py @@ -3,8 +3,7 @@ from io import BytesIO import mutagen from app import settings -from mutagen.flac import FLAC -from mutagen.flac import MutagenError +from mutagen.flac import FLAC, MutagenError from mutagen.id3 import ID3 from PIL import Image @@ -146,16 +145,25 @@ def parse_track_number(tags): return track_number -def parse_disk_number(tags): +def parse_disc_number(tags): """ - Parses the disk number from an audio file. + Parses the disc number from an audio file. """ try: - disk_number = int(tags["disknumber"][0]) + disc_number = int(tags["discnumber"][0]) except (KeyError, IndexError, ValueError): - disk_number = 1 + disc_number = 1 - return disk_number + return disc_number + + +def parse_copyright(tags): + try: + copyright = str(tags["copyright"][0]) + except (KeyError, IndexError, ValueError): + copyright = None + + return copyright def get_tags(fullpath: str) -> dict | None: @@ -175,7 +183,8 @@ def get_tags(fullpath: str) -> dict | None: "genre": parse_genre_tag(tags), "date": parse_date_tag(tags)[:4], "tracknumber": parse_track_number(tags), - "disknumber": parse_disk_number(tags), + "discnumber": parse_disc_number(tags), + "copyright": parse_copyright(tags), "length": round(tags.info.length), "bitrate": round(int(tags.info.bitrate) / 1000), "filepath": fullpath, diff --git a/server/app/models.py b/server/app/models.py index 31d296fd..07d1f07c 100644 --- a/server/app/models.py +++ b/server/app/models.py @@ -3,6 +3,7 @@ Contains all the models for objects generation and typing. """ from dataclasses import dataclass from dataclasses import field +from operator import itemgetter from typing import List from app import helpers @@ -25,26 +26,42 @@ class Track: genre: str bitrate: int tracknumber: int - disknumber: int + discnumber: int albumhash: str date: str image: str uniq_hash: str + copyright: str def __init__(self, tags): + ( + self.title, + self.album, + self.albumartist, + self.genre, + self.albumhash, + self.date, + self.folder, + self.filepath, + self.copyright, + ) = itemgetter( + "title", + "album", + "albumartist", + "genre", + "albumhash", + "date", + "folder", + "filepath", + "copyright", + )( + tags + ) self.trackid = tags["_id"]["$oid"] - self.title = tags["title"] self.artists = tags["artists"].split(", ") - self.albumartist = tags["albumartist"] - self.album = tags["album"] - self.folder = tags["folder"] - self.filepath = tags["filepath"] - self.genre = tags["genre"] self.bitrate = int(tags["bitrate"]) self.length = int(tags["length"]) - self.disknumber = int(tags["disknumber"]) - self.albumhash = tags["albumhash"] - self.date = tags["date"] + self.discnumber = int(tags["discnumber"]) self.image = tags["albumhash"] + ".webp" self.tracknumber = int(tags["tracknumber"]) @@ -85,17 +102,21 @@ class Album: image: str count: int = 0 duration: int = 0 + copyright: str = field(default="") is_soundtrack: bool = False is_compilation: bool = False is_single: bool = False colors: List[str] = field(default_factory=list) def __init__(self, tags): - self.title = tags["title"] - self.artist = tags["artist"] - self.date = tags["date"] - self.image = tags["image"] - self.hash = tags["hash"] + ( + self.title, + self.artist, + self.date, + self.image, + self.hash, + self.copyright, + ) = itemgetter("title", "artist", "date", "image", "hash", "copyright")(tags) try: self.colors = tags["colors"] diff --git a/src/App.vue b/src/App.vue index c38cf0c8..6c9d6b81 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,7 +2,7 @@ -
+
-
+
@@ -21,29 +21,27 @@ \ No newline at end of file + diff --git a/src/components/ArtistsExplorer/TopArtists.vue b/src/components/ArtistsExplorer/TopArtists.vue index ddb19d3b..103cb31b 100644 --- a/src/components/ArtistsExplorer/TopArtists.vue +++ b/src/components/ArtistsExplorer/TopArtists.vue @@ -18,7 +18,7 @@
- diff --git a/src/components/RightSideBar/queue/playingFrom.vue b/src/components/RightSideBar/Queue/playingFrom.vue similarity index 92% rename from src/components/RightSideBar/queue/playingFrom.vue rename to src/components/RightSideBar/Queue/playingFrom.vue index ca4b8d51..17710db6 100644 --- a/src/components/RightSideBar/queue/playingFrom.vue +++ b/src/components/RightSideBar/Queue/playingFrom.vue @@ -1,10 +1,10 @@