From 552ad73973eea9918f1f72f02f113e34db0c8dfc Mon Sep 17 00:00:00 2001 From: charlesxie <408737515@qq.com> Date: Wed, 9 Aug 2023 10:20:52 +0800 Subject: [PATCH] =?UTF-8?q?feature=EF=BC=9Amp3,wav=E6=A0=BC=E5=BC=8F=20?= =?UTF-8?q?=E4=B8=93=E8=BE=91=E7=B1=BB=E5=9E=8B=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/task/services/music_ids.py | 3 +-- applications/task/services/update_ids.py | 13 ++++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/applications/task/services/music_ids.py b/applications/task/services/music_ids.py index f3ffd58..bba4fd7 100644 --- a/applications/task/services/music_ids.py +++ b/applications/task/services/music_ids.py @@ -32,7 +32,7 @@ class MusicIDS: if self.file.tag_format in ["FLAC", "OGG"]: return self.file.mfile.tags.get("RELEASETYPE")[0] else: - return self.file.mfile.tags.get("MUSICBRAINZALBUMTYPE")[0] + return self.file.mfile.tags.get("TXXX:MUSICBRAINZALBUMTYPE").text[0] except Exception: return "" @@ -139,7 +139,6 @@ class MusicIDS: "lyrics": self.lyrics, "duration": self.duration, "size": self.size, - "suffix": self.suffix, "bit_rate": self.bit_rate, "tracknumber": self.track_number, "discnumber": self.disc_number, diff --git a/applications/task/services/update_ids.py b/applications/task/services/update_ids.py index 9343d01..f6b9de6 100644 --- a/applications/task/services/update_ids.py +++ b/applications/task/services/update_ids.py @@ -1,6 +1,9 @@ import os import music_tag +from music_tag import MetadataItem +from mutagen.flac import VCFLACDict +from mutagen.id3 import TXXX, ID3 from applications.task.models import Task from applications.utils.constant_template import ConstantTemplate @@ -89,17 +92,21 @@ def save_music(f, each, is_raw_thumbnail): img_data = send().GET(each["album_img"]) if img_data.status_code == 200: f['artwork'] = img_data.content - if len(img_data.content)/1024/1024 > 5: + if len(img_data.content) / 1024 / 1024 > 5: f['artwork'] = f['artwork'].first.raw_thumbnail([2048, 2048]) if is_raw_thumbnail: f['artwork'] = f['artwork'].first.raw_thumbnail([2048, 2048]) except Exception: pass if each.get("album_type", None): - if file_ext in ["flac", "ogg"]: + if isinstance(f.mfile.tags, VCFLACDict): f.mfile.tags["RELEASETYPE"] = each["album_type"] + elif isinstance(f.mfile.tags, ID3): + f.mfile.tags["MUSICBRAINZALBUMTYPE"] = TXXX(encoding=3, + desc="MUSICBRAINZALBUMTYPE", + text=each["album_type"]) else: - f["MUSICBRAINZALBUMTYPE"] = each["album_type"] + raise Exception("未知的音乐文件类型") f.save() # 重命名文件名称 if each.get("filename", None):