feature:支持修改光盘编号和音轨号

This commit is contained in:
charlesxie
2023-07-31 14:06:24 +08:00
parent 085f76a3df
commit b359e68bbf
8 changed files with 46 additions and 3 deletions

View File

@@ -15,6 +15,8 @@ class MusicId3Serializer(serializers.Serializer):
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)
discnumber = serializers.CharField(required=True, allow_null=True, allow_blank=True)
tracknumber = 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)

View File

@@ -29,6 +29,8 @@ def save_music(f, each, is_raw_thumbnail):
"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
}
@@ -52,6 +54,16 @@ def save_music(f, each, is_raw_thumbnail):
f["albumartist"] = ConstantTemplate(each["albumartist"]).resolve_data(var_dict)
else:
f["albumartist"] = each["albumartist"]
if each.get("discnumber", None):
if "${" in each["discnumber"]:
f["discnumber"] = ConstantTemplate(each["discnumber"]).resolve_data(var_dict)
else:
f["discnumber"] = each["discnumber"]
if each.get("tracknumber", None):
if "${" in each["tracknumber"]:
f["tracknumber"] = ConstantTemplate(each["tracknumber"]).resolve_data(var_dict)
else:
f["tracknumber"] = each["tracknumber"]
if each.get("genre", None):
f["genre"] = each["genre"]
if each.get("year", None):

View File

@@ -132,6 +132,8 @@ class TaskViewSets(GenericViewSet):
"year": f["year"].value,
"lyrics": f["lyrics"].value,
"comment": f["comment"].value,
"tracknumber": f["tracknumber"].value,
"discnumber": f["discnumber"].value,
"artwork": "data:image/jpeg;base64," + bs64_img,
"filename": file_name
}

View File

@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from django.conf import settings
from rest_framework import status
from rest_framework.response import Response
@@ -10,7 +10,8 @@ class ApiGenericMixin(object):
"""API视图类通用函数"""
# TODO 权限部分加载基类中
# permission_classes = ()
if settings.SITE_LOGIN == "false":
permission_classes = ()
def finalize_response(self, request, response, *args, **kwargs):
"""统一返回数据格式"""
@@ -42,6 +43,7 @@ class ApiGenericMixin(object):
request, response, *args, **kwargs
)
class ApiGatewayMixin(object):
"""对外开放API返回格式统一
错误码返回规范为数字:

View File

@@ -168,6 +168,7 @@ REVERSE_PROXY_TYPE = "nginx"
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
SUBSONIC_DEFAULT_TRANSCODING_FORMAT = "mp3"
SITE_LOGIN = os.getenv("SITE_LOGIN", "true")
try:
from local_settings import * # noqa
except ImportError:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -149,6 +149,18 @@
</div>
</div>
</div>
<div style="display: flex;margin-bottom: 10px;align-items: center;">
<div class="label1">光盘编号</div>
<div style="width: 70%;">
<bk-input :clearable="true" v-model="musicInfo.discnumber"></bk-input>
</div>
</div>
<div style="display: flex;margin-bottom: 10px;align-items: center;">
<div class="label1">音轨号</div>
<div style="width: 70%;">
<bk-input :clearable="true" v-model="musicInfo.tracknumber"></bk-input>
</div>
</div>
</div>
</transition>
<transition name="bk-slide-fade-left">
@@ -256,6 +268,18 @@
</div>
</div>
</div>
<div style="display: flex;margin-bottom: 10px;align-items: center;">
<div class="label1">光盘编号</div>
<div style="width: 70%;">
<bk-input :clearable="true" v-model="musicInfoManual.discnumber"></bk-input>
</div>
</div>
<div style="display: flex;margin-bottom: 10px;align-items: center;">
<div class="label1">音轨号</div>
<div style="width: 70%;">
<bk-input :clearable="true" v-model="musicInfoManual.tracknumber"></bk-input>
</div>
</div>
</div>
</transition>
</div>