mirror of
https://github.com/xhongc/music-tag-web.git
synced 2026-02-02 17:59:07 +08:00
feature:修复bug
This commit is contained in:
@@ -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,
|
||||
}
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user