refactor: 优化代码
This commit is contained in:
parent
7744a75773
commit
7877775495
@ -79,7 +79,11 @@ def reset_http_server():
|
||||
|
||||
# 更新 music 链接
|
||||
app.router.routes = [route for route in app.router.routes if route.path != "/music"]
|
||||
app.mount("/music", StaticFiles(directory=config.music_path,follow_symlink=True), name="music")
|
||||
app.mount(
|
||||
"/music",
|
||||
StaticFiles(directory=config.music_path, follow_symlink=True),
|
||||
name="music",
|
||||
)
|
||||
|
||||
|
||||
def HttpInit(_xiaomusic):
|
||||
|
@ -7,18 +7,17 @@ import mimetypes
|
||||
import os
|
||||
import random
|
||||
import re
|
||||
import shutil
|
||||
import string
|
||||
import tempfile
|
||||
from collections.abc import AsyncIterator
|
||||
from http.cookies import SimpleCookie
|
||||
from urllib.parse import urlparse
|
||||
from mutagen.id3 import ID3
|
||||
from mutagen.mp3 import MP3
|
||||
import os
|
||||
import shutil
|
||||
|
||||
import aiohttp
|
||||
import mutagen
|
||||
from mutagen.id3 import ID3
|
||||
from mutagen.mp3 import MP3
|
||||
from requests.utils import cookiejar_from_dict
|
||||
|
||||
from xiaomusic.const import SUPPORT_MUSIC_TYPE
|
||||
@ -300,20 +299,21 @@ def parse_str_to_dict(s, d1=",", d2=":"):
|
||||
|
||||
return result
|
||||
|
||||
|
||||
# remove mp3 file id3 tag and padding to reduce delay
|
||||
def no_padding(info):
|
||||
# this will remove all padding
|
||||
return 0
|
||||
|
||||
def remove_id3_tags(filename,music_path):
|
||||
|
||||
file_path = music_path + "/" + filename
|
||||
def remove_id3_tags(file_path):
|
||||
audio = MP3(file_path, ID3=ID3)
|
||||
change = False
|
||||
|
||||
# 检查是否存在ID3 v2.3或v2.4标签
|
||||
if audio.tags and (audio.tags.version == (2, 3, 0) or audio.tags.version == (2, 4, 0)):
|
||||
|
||||
# 检查是否存在ID3 v2.3或v2.4标签
|
||||
if audio.tags and (
|
||||
audio.tags.version == (2, 3, 0) or audio.tags.version == (2, 4, 0)
|
||||
):
|
||||
# 构造新文件的路径
|
||||
new_file_path = file_path + ".bak"
|
||||
|
||||
@ -325,14 +325,10 @@ def remove_id3_tags(filename,music_path):
|
||||
|
||||
# 删除padding
|
||||
audio.save(padding=no_padding)
|
||||
|
||||
|
||||
# 保存修改后的文件
|
||||
audio.save()
|
||||
|
||||
change = True
|
||||
|
||||
return filename,change
|
||||
|
||||
|
||||
|
||||
|
||||
return change
|
||||
|
@ -37,12 +37,11 @@ from xiaomusic.utils import (
|
||||
fuzzyfinder,
|
||||
get_local_music_duration,
|
||||
get_web_music_duration,
|
||||
is_mp3,
|
||||
parse_cookie_string,
|
||||
parse_str_to_dict,
|
||||
traverse_music_directory,
|
||||
remove_id3_tags,
|
||||
is_mp3
|
||||
|
||||
traverse_music_directory,
|
||||
)
|
||||
|
||||
|
||||
@ -371,21 +370,22 @@ class XiaoMusic:
|
||||
self.log.debug(f"get_music_url web music. name:{name}, url:{url}")
|
||||
return url
|
||||
|
||||
filename = self.get_filename(name).replace("\\", "/")
|
||||
filename = self.get_filename(name)
|
||||
# 移除MP3 ID3 v2标签和填充,减少播放前延迟
|
||||
if self.remove_id3tag and is_mp3(filename):
|
||||
self.log.info(f"remove_id3tag:{self.remove_id3tag}, is_mp3:True ")
|
||||
change = remove_id3_tags(filename)
|
||||
if change:
|
||||
self.log.info("ID3 tag removed, orgin mp3 file saved as bak")
|
||||
else:
|
||||
self.log.info("No ID3 tag remove needed")
|
||||
|
||||
filename = filename.replace("\\", "/")
|
||||
if filename.startswith(self.config.music_path):
|
||||
filename = filename[len(self.config.music_path) :]
|
||||
if filename.startswith("/"):
|
||||
filename = filename[1:]
|
||||
self.log.debug(f"get_music_url local music. name:{name}, filename:{filename}")
|
||||
|
||||
#移除MP3 ID3 v2标签和填充,减少播放前延迟
|
||||
if self.remove_id3tag and is_mp3(f"{self.music_path}/{filename}"):
|
||||
self.log.info(f"remove_id3tag:{self.remove_id3tag}, is_mp3:True ")
|
||||
filename,change = remove_id3_tags(filename,self.music_path)
|
||||
if change:
|
||||
self.log.info(f"ID3 tag removed, orgin mp3 file saved as bak")
|
||||
else:
|
||||
self.log.info(f"No ID3 tag remove needed")
|
||||
encoded_name = urllib.parse.quote(filename)
|
||||
return f"http://{self.hostname}:{self.public_port}/music/{encoded_name}"
|
||||
|
||||
@ -418,12 +418,12 @@ class XiaoMusic:
|
||||
all_music_by_dir[dir_name][name] = True
|
||||
self.log.debug(f"_gen_all_music_list {name}:{dir_name}:{file}")
|
||||
|
||||
#self.log.debug(self.all_music)
|
||||
# self.log.debug(self.all_music)
|
||||
|
||||
self.music_list = {}
|
||||
for dir_name, musics in all_music_by_dir.items():
|
||||
self.music_list[dir_name] = list(musics.keys())
|
||||
#self.log.debug("dir_name:%s, list:%s", dir_name, self.music_list[dir_name])
|
||||
# self.log.debug("dir_name:%s, list:%s", dir_name, self.music_list[dir_name])
|
||||
|
||||
try:
|
||||
self._append_music_list()
|
||||
@ -471,8 +471,8 @@ class XiaoMusic:
|
||||
self.music_list[list_name] = one_music_list
|
||||
if self._all_radio:
|
||||
self.music_list["所有电台"] = list(self._all_radio.keys())
|
||||
#self.log.debug(self.all_music)
|
||||
#self.log.debug(self.music_list)
|
||||
# self.log.debug(self.all_music)
|
||||
# self.log.debug(self.music_list)
|
||||
except Exception as e:
|
||||
self.log.exception(f"Execption {e}")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user