feature:修复bug

This commit is contained in:
charlesxie
2023-09-08 14:19:47 +08:00
parent 1769f212cc
commit 4ee4ed4cee
2 changed files with 36 additions and 20 deletions

View File

@@ -1,19 +1,23 @@
import base64
import os
from ast import literal_eval
from component import music_tag
from mutagen.flac import VCFLACDict
from mutagen.id3 import ID3
from applications.task.utils import detect_language
from component import music_tag
class MusicIDS:
def __init__(self, folder):
folder = folder.encode('utf-8', 'replace').decode()
self.file = music_tag.load_file(folder)
self.path = folder
def __init__(self, folder=None, file=None):
if folder:
folder = folder.encode('utf-8', 'replace').decode()
self.file = music_tag.load_file(folder)
self.path = folder
elif file:
folder = file.filename.encode('utf-8', 'replace').decode()
self.file = file
self.path = folder
self.artwork_w = 0
self.artwork_h = 0
self.artwork_size = 0
@@ -113,14 +117,14 @@ class MusicIDS:
try:
return self.file['tracknumber'].value
except Exception:
return 1
return self.file.mfile.tags["tracknumber"][0]
@property
def disc_number(self):
try:
return self.file['discnumber'].value
except Exception:
return 1
return self.file.mfile.tags["discnumber"][0]
@property
def title(self):
@@ -195,3 +199,14 @@ class MusicIDS:
"albumartist": self.album_artist,
"language": self.language,
}
def var_dict(self):
return {
"title": self.title or self.file_name.split(".")[0],
"artist": self.artist,
"albumartist": self.album_artist,
"discnumber": self.disc_number,
"tracknumber": self.track_number,
"album": self.album,
"filename": self.file_name,
}

View File

@@ -24,17 +24,12 @@ def update_music_info(music_id3_info, is_raw_thumbnail=False):
def save_music(f, each, is_raw_thumbnail):
from applications.task.services.music_ids import MusicIDS
base_filename = ".".join(os.path.basename(f.filename).split(".")[:-1])
file_ext = os.path.basename(f.filename).split(".")[-1]
var_dict = {
"title": f["title"].value,
"artist": f["artist"].value,
"albumartist": f["albumartist"].value,
"discnumber": f["discnumber"].value,
"tracknumber": f["tracknumber"].value,
"album": f["album"].value,
"filename": base_filename
}
var_dict = MusicIDS(file=f).var_dict()
if each.get("title", None):
if "${" in each["title"]:
f["title"] = ConstantTemplate(each["title"]).resolve_data(var_dict)
@@ -61,12 +56,18 @@ def save_music(f, each, is_raw_thumbnail):
if "${" in each["discnumber"]:
f["discnumber"] = ConstantTemplate(each["discnumber"]).resolve_data(var_dict)
else:
f["discnumber"] = each["discnumber"]
try:
f["discnumber"] = int(each["discnumber"].split("/")[0].strip())
except:
f["discnumber"] = 0
if each.get("tracknumber", None):
if "${" in each["tracknumber"]:
f["tracknumber"] = ConstantTemplate(each["tracknumber"]).resolve_data(var_dict)
else:
f["tracknumber"] = each["tracknumber"]
try:
f["tracknumber"] = int(each["tracknumber"].split("/")[0].strip())
except:
f["tracknumber"] = 0
if each.get("genre", None):
f["genre"] = each["genre"]
if each.get("year", None):