diff --git a/applications/task/serialziers.py b/applications/task/serialziers.py
index 7574bbc..673ab75 100644
--- a/applications/task/serialziers.py
+++ b/applications/task/serialziers.py
@@ -14,6 +14,7 @@ class MusicId3Serializer(serializers.Serializer):
title = serializers.CharField(required=True, allow_null=True, allow_blank=True)
artist = serializers.CharField(required=True, allow_null=True, allow_blank=True)
album = serializers.CharField(required=True, allow_null=True, allow_blank=True)
+ albumartist = serializers.CharField(required=True, allow_null=True, allow_blank=True)
genre = serializers.CharField(required=True, allow_null=True, allow_blank=True)
year = serializers.CharField(required=True, allow_null=True, allow_blank=True)
lyrics = serializers.CharField(required=True, allow_null=True, allow_blank=True)
diff --git a/applications/task/services/update_ids.py b/applications/task/services/update_ids.py
index 4b9d346..a19887a 100644
--- a/applications/task/services/update_ids.py
+++ b/applications/task/services/update_ids.py
@@ -28,6 +28,7 @@ def save_music(f, each, is_raw_thumbnail):
var_dict = {
"title": f["title"].value,
"artist": f["artist"].value,
+ "albumartist": f["albumartist"].value,
"album": f["album"].value,
"filename": base_filename
}
@@ -46,6 +47,11 @@ def save_music(f, each, is_raw_thumbnail):
f["album"] = ConstantTemplate(each["album"]).resolve_data(var_dict)
else:
f["album"] = each["album"]
+ if each.get("albumartist", None):
+ if "${" in each["albumartist"]:
+ f["albumartist"] = ConstantTemplate(each["albumartist"]).resolve_data(var_dict)
+ else:
+ f["albumartist"] = each["albumartist"]
if each.get("genre", None):
f["genre"] = each["genre"]
if each.get("year", None):
diff --git a/applications/task/tasks.py b/applications/task/tasks.py
index 4a9d137..f425729 100644
--- a/applications/task/tasks.py
+++ b/applications/task/tasks.py
@@ -245,7 +245,7 @@ def batch_auto_tag_task(batch, source_list, select_mode):
folder_list = TaskRecord.objects.filter(batch=batch, icon="icon-folder").all()
for folder in folder_list:
data = os.scandir(folder.full_path)
- allow_type = ["flac", "mp3", "ape", "wav", "aiff", "wv", "tta", "mp4", "m4a", "ogg", "mpc",
+ allow_type = ["flac", "mp3", "ape", "wav", "aiff", "wv", "tta", "m4a", "ogg", "mpc",
"opus", "wma", "dsf", "dff"]
bulk_set = []
for entry in data:
diff --git a/applications/task/views.py b/applications/task/views.py
index 00eaf30..c48497a 100644
--- a/applications/task/views.py
+++ b/applications/task/views.py
@@ -46,7 +46,7 @@ class TaskViewSets(GenericViewSet):
except FileNotFoundError:
return self.failure_response(msg="文件夹不存在")
children_data = []
- allow_type = ["flac", "mp3", "ape", "wav", "aiff", "wv", "tta", "mp4", "m4a", "ogg", "mpc",
+ allow_type = ["flac", "mp3", "ape", "wav", "aiff", "wv", "tta", "m4a", "ogg", "mpc",
"opus", "wma", "dsf", "dff"]
frc_map = {}
file_data = []
@@ -124,6 +124,7 @@ class TaskViewSets(GenericViewSet):
"title": f["title"].value or file_title,
"artist": f["artist"].value,
"album": f["album"].value,
+ "albumartist": f["albumartist"].value,
"genre": f["genre"].value,
"year": f["year"].value,
"lyrics": f["lyrics"].value,
@@ -153,7 +154,7 @@ class TaskViewSets(GenericViewSet):
if data.get('icon') == 'icon-folder':
file_full_path = f"{full_path}/{data.get('name')}"
data = os.scandir(file_full_path)
- allow_type = ["flac", "mp3", "ape", "wav", "aiff", "wv", "tta", "mp4", "m4a", "ogg", "mpc",
+ allow_type = ["flac", "mp3", "ape", "wav", "aiff", "wv", "tta", "m4a", "ogg", "mpc",
"opus", "wma", "dsf", "dff"]
for index, entry in enumerate(data, 1):
each = entry.name
diff --git a/web/src/views/home/home.vue b/web/src/views/home/home.vue
index e5ae7c7..dcf6b84 100644
--- a/web/src/views/home/home.vue
+++ b/web/src/views/home/home.vue
@@ -82,6 +82,12 @@