1
0
mirror of https://github.com/hanxi/xiaomusic.git synced 2026-03-15 08:13:16 +08:00

重构: 优化 import

This commit is contained in:
涵曦
2026-01-15 14:24:51 +08:00
parent 1f13d67d5a
commit 1bfb23dbbc
17 changed files with 40 additions and 193 deletions

View File

@@ -1,9 +1,6 @@
import difflib
from xiaomusic.utils import (
find_best_match,
keyword_detection,
)
from xiaomusic.utils.text_utils import find_best_match, keyword_detection
if __name__ == "__main__":
user_input = "八年的爱"

View File

@@ -1,12 +1,8 @@
import math
from xiaomusic.const import (
SUPPORT_MUSIC_TYPE,
)
from xiaomusic.utils import (
get_local_music_duration,
traverse_music_directory,
)
from xiaomusic.const import SUPPORT_MUSIC_TYPE
from xiaomusic.utils.file_utils import traverse_music_directory
from xiaomusic.utils.music_utils import get_local_music_duration
async def test_one_music(filename):

View File

@@ -1,12 +1,8 @@
import traceback
from xiaomusic.const import (
SUPPORT_MUSIC_TYPE,
)
from xiaomusic.utils import (
extract_audio_metadata,
traverse_music_directory,
)
from xiaomusic.const import SUPPORT_MUSIC_TYPE
from xiaomusic.utils.file_utils import traverse_music_directory
from xiaomusic.utils.music_utils import extract_audio_metadata
# title 标题
# artist 艺术家

View File

@@ -1,6 +1,4 @@
from xiaomusic.utils import (
download_and_extract,
)
from xiaomusic.utils.system_utils import download_and_extract
if __name__ == "__main__":
import asyncio

View File

@@ -36,20 +36,20 @@ from xiaomusic.api.models import (
DownloadPlayList,
UrlInfo,
)
from xiaomusic.utils import (
check_bili_fav_list,
from xiaomusic.utils.file_utils import (
chmoddir,
convert_file_to_mp3,
clean_temp_dir,
remove_common_prefix,
safe_join_path,
)
from xiaomusic.utils.music_utils import convert_file_to_mp3, is_mp3, remove_id3_tags
from xiaomusic.utils.network_utils import (
check_bili_fav_list,
download_one_music,
download_playlist,
downloadfile,
is_mp3,
remove_common_prefix,
remove_id3_tags,
safe_join_path,
try_add_access_control_param,
)
from xiaomusic.utils.file_utils import clean_temp_dir
from xiaomusic.utils.system_utils import try_add_access_control_param
router = APIRouter()

View File

@@ -37,7 +37,7 @@ from xiaomusic.api.dependencies import (
verification,
xiaomusic,
)
from xiaomusic.utils import (
from xiaomusic.utils.system_utils import (
deepcopy_data_no_sensitive_info,
get_latest_version,
restart_xiaomusic,

View File

@@ -10,11 +10,7 @@
import json
import os
from miservice import (
MiAccount,
MiIOService,
MiNAService,
)
from miservice import MiAccount, MiIOService, MiNAService
from xiaomusic.config import Device
from xiaomusic.const import COOKIE_TEMPLATE

View File

@@ -13,7 +13,7 @@ from xiaomusic.const import (
PLAY_TYPE_SEQ,
PLAY_TYPE_SIN,
)
from xiaomusic.utils import validate_proxy
from xiaomusic.utils.system_utils import validate_proxy
# 默认口令

View File

@@ -13,10 +13,7 @@ import time
from aiohttp import ClientTimeout
from xiaomusic.const import (
GET_ASK_BY_MINA,
LATEST_ASK_API,
)
from xiaomusic.const import GET_ASK_BY_MINA, LATEST_ASK_API
class ConversationPoller:

View File

@@ -4,10 +4,7 @@ from apscheduler.schedulers.asyncio import AsyncIOScheduler
from apscheduler.triggers.base import BaseTrigger
from apscheduler.triggers.cron import CronTrigger
from xiaomusic.holiday import (
is_off_day,
is_working_day,
)
from xiaomusic.holiday import is_off_day, is_working_day
from xiaomusic.utils.file_utils import clean_temp_dir

View File

@@ -7,9 +7,7 @@
"""
from xiaomusic.device_player import XiaoMusicDevice
from xiaomusic.utils import (
parse_str_to_dict,
)
from xiaomusic.utils.text_utils import parse_str_to_dict
class DeviceManager:

View File

@@ -23,11 +23,8 @@ from xiaomusic.const import (
TTS_COMMAND,
)
from xiaomusic.events import DEVICE_CONFIG_CHANGED
from xiaomusic.utils import (
chmodfile,
custom_sort_key,
list2str,
)
from xiaomusic.utils.file_utils import chmodfile
from xiaomusic.utils.text_utils import custom_sort_key, list2str
class XiaoMusicDevice:

View File

@@ -15,22 +15,17 @@ from dataclasses import asdict
from xiaomusic.const import SUPPORT_MUSIC_TYPE
from xiaomusic.events import CONFIG_CHANGED
from xiaomusic.utils import (
custom_sort_key,
extract_audio_metadata,
find_best_match,
fuzzyfinder,
not_in_dirs,
save_picture_by_base64,
set_music_tag_to_file,
traverse_music_directory,
try_add_access_control_param,
)
from xiaomusic.utils.file_utils import not_in_dirs, traverse_music_directory
from xiaomusic.utils.music_utils import (
Metadata,
extract_audio_metadata,
get_local_music_duration,
get_web_music_duration,
save_picture_by_base64,
set_music_tag_to_file,
)
from xiaomusic.utils.system_utils import try_add_access_control_param
from xiaomusic.utils.text_utils import custom_sort_key, find_best_match, fuzzyfinder
class MusicLibrary:

View File

@@ -6,10 +6,8 @@
import base64
import urllib.parse
from xiaomusic.utils import (
MusicUrlCache,
try_add_access_control_param,
)
from xiaomusic.utils.network_utils import MusicUrlCache
from xiaomusic.utils.system_utils import try_add_access_control_param
class MusicUrlHandler:

View File

@@ -12,9 +12,7 @@ from urllib.parse import urlparse
import aiohttp
from xiaomusic.const import (
PLAY_TYPE_ALL,
)
from xiaomusic.const import PLAY_TYPE_ALL
def _build_keyword(song_name, artist):

View File

@@ -1,123 +1,11 @@
#!/usr/bin/env python3
"""
Utils package - 工具函数模块
工具函数模块
将原 utils.py 拆分为多个职责清晰的子模块:
子模块分类
- text_utils: 文本处理和搜索
- file_utils: 文件和目录操作
- music_utils: 音乐文件处理
- network_utils: 网络请求和下载
- system_utils: 系统操作和环境
"""
# 从各子模块导入常用函数,保持向后兼容
from xiaomusic.utils.file_utils import (
chmoddir,
chmodfile,
not_in_dirs,
remove_common_prefix,
safe_join_path,
traverse_music_directory,
)
from xiaomusic.utils.music_utils import (
Metadata,
convert_file_to_mp3,
extract_audio_metadata,
get_duration_by_ffprobe,
get_duration_by_mutagen,
get_local_music_duration,
get_web_music_duration,
is_m4a,
is_mp3,
remove_id3_tags,
save_picture_by_base64,
set_music_tag_to_file,
)
from xiaomusic.utils.network_utils import (
MusicUrlCache,
check_bili_fav_list,
download_one_music,
download_playlist,
downloadfile,
fetch_json_get,
text_to_mp3,
)
from xiaomusic.utils.system_utils import (
deepcopy_data_no_sensitive_info,
download_and_extract,
get_latest_version,
get_os_architecture,
get_random,
is_docker,
restart_xiaomusic,
try_add_access_control_param,
update_version,
validate_proxy,
)
from xiaomusic.utils.text_utils import (
calculate_tts_elapse,
chinese_to_number,
custom_sort_key,
find_best_match,
find_key_by_partial_string,
fuzzyfinder,
keyword_detection,
list2str,
parse_str_to_dict,
split_sentences,
traditional_to_simple,
)
__all__ = [
# text_utils
"calculate_tts_elapse",
"chinese_to_number",
"custom_sort_key",
"find_best_match",
"find_key_by_partial_string",
"fuzzyfinder",
"keyword_detection",
"list2str",
"parse_str_to_dict",
"split_sentences",
"traditional_to_simple",
# file_utils
"chmoddir",
"chmodfile",
"not_in_dirs",
"remove_common_prefix",
"safe_join_path",
"traverse_music_directory",
# music_utils
"Metadata",
"convert_file_to_mp3",
"extract_audio_metadata",
"get_duration_by_ffprobe",
"get_duration_by_mutagen",
"get_local_music_duration",
"get_web_music_duration",
"is_m4a",
"is_mp3",
"remove_id3_tags",
"set_music_tag_to_file",
"save_picture_by_base64",
# network_utils
"MusicUrlCache",
"check_bili_fav_list",
"download_one_music",
"download_playlist",
"downloadfile",
"fetch_json_get",
"text_to_mp3",
# system_utils
"deepcopy_data_no_sensitive_info",
"download_and_extract",
"get_latest_version",
"get_os_architecture",
"get_random",
"is_docker",
"restart_xiaomusic",
"try_add_access_control_param",
"update_version",
"validate_proxy",
]

View File

@@ -11,9 +11,7 @@ from xiaomusic import __version__
from xiaomusic.analytics import Analytics
from xiaomusic.auth import AuthManager
from xiaomusic.command_handler import CommandHandler
from xiaomusic.config import (
Config,
)
from xiaomusic.config import Config
from xiaomusic.config_manager import ConfigManager
from xiaomusic.const import (
PLAY_TYPE_ALL,
@@ -31,11 +29,9 @@ from xiaomusic.music_library import MusicLibrary
from xiaomusic.music_url import MusicUrlHandler
from xiaomusic.online_music import OnlineMusicService
from xiaomusic.plugin import PluginManager
from xiaomusic.utils import (
chinese_to_number,
deepcopy_data_no_sensitive_info,
downloadfile,
)
from xiaomusic.utils.network_utils import downloadfile
from xiaomusic.utils.system_utils import deepcopy_data_no_sensitive_info
from xiaomusic.utils.text_utils import chinese_to_number
class XiaoMusic: