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 @@