Musician2.0:重大更新

aaaaa Lv3

仓库: aaaaa114514-1/Musician2.0: A totally upgrade from musician!

在项目开工时隔一年之后,我终于看不下去 Musician 的单文件代码了,于是直接新建文件夹,重构代码走起!经过了近1个月的代码工作(中间经历了一个极度繁忙的期中周),Musician 2.0 终于正式上线了!

Musician 2.0 几乎沿用了上个版本的所有特性,并增加了不少新功能。毕竟我自己几乎每天都在用 Musician 来听歌,所以我对用户需求相对了解,也因此有了这个版本的全新功能和优化:

重构代码为多文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
musician_project/
├── core/
│ ├── __init__.py
│ ├── player.py # player 类和后台检查线程
│ └── history.py # 历史记录管理
├── services/
│ ├── __init__.py
│ ├── kugou.py # 酷狗搜索与下载
│ └── netease.py # 网易云缓存解密
├── utils/
│ ├── __init__.py
│ ├── file_utils.py # 文件名转换、MP3转换
│ └── search_utils.py # 模糊匹配
├── ui/
│ ├── __init__.py
│ └── handlers.py # 所有的 handle_xxx 函数
└── main.py # 主程序循环

支持原来指令基础上,增加简化连写命令

  • play -m Mode:
    • play -m s: 切换到单曲循环并开始
    • play -m c: 切换到列表循环并开始
    • play -m r: 切换到随机播放并开始
  • play -v Volume:
    • play -v 50: 播放的同时将音量设为 50%
  • play -t Timelimit:
    • play -t 60: 播放的同时设置 60 分钟后自动停止
  • <Command> -h Help:
    • timelimit -h: 展示指令 timelimit 的用法
  • 非法的连写命令将被指出

重构设置功能

  • 重构 savedata.txt 文件为 settings.json 文件
  • 增加 set 语句,支持应用内展示配置、修改配置(带合法性校验)

增加存储常用指令功能

  • 增加 common_commands.json 文件,存储常用指令
  • 常用指令可以在打开应用后直接通过上/下键直接选择
  • 增加 common 语句,支持应用内查看、增删常用指令

增加 timelimit 播放到固定时间功能

  • 重构了 timelimit 处理代码

  • 增加支持 timelimit 14:15timelimit 23:59:59 的功能,自动播放直到下一次到达指定的时刻

增加歌曲 Tag 功能,重构存储逻辑

  • 增加tags.json存储每首歌的tag

  • 替代了原本的 Lis 目录逻辑,而是使用指定tag来播放音乐

  • 标签必须是由大小写敏感的字母、数字(可以没有)、下划线(可以没有)组成的,不能纯数字

  • tag 标签

    • tag 列出所有标签和标签下的曲目数量
    • tag -l 列出所有标签和标签下的曲目
    • tag test 列出标签 test 下的所有曲目
    • tag -a test 1-4 6 把当前目录下的第1-4、6首曲子打上标签 test
    • tag -d test 删除标签 test ,洗脱所有曲目的这个标签
    • tag -d test 2-3 7 把带 test 标签的低2-3、7首曲子洗脱 test 标签
  • play 新增内容

    • play test 播放 test 中的曲目(这里的 test 可以按照任意顺序传入参数)
  • showlist 新增内容

    • showlist test 列出标签 test 下的所有曲目
  • save 语法重构

    • savesavelist 中的歌曲保存到曲库目录
    • save test1 test2savelist 中的歌曲保存到曲库目录,并把这些歌曲统一打上 test1 test2 标签

使用安装包安装

  • 使用 Inno Setup 安装包,自动处理了安装路径问题
  • 分为 BGMMusician 两个路径,允许用户独立编辑安装位置
  • 自动配置 settings.json 中的部分路径

目前已经发布了 Musician 2.0.0 版本的安装包,其中可能仍然存在少量 bug 或者功能实现不完整的问题,后续我会陆续解决。另外,我有增加一个自动推荐系统的打算,后续可能一并更新,敬请期待!

  • 标题: Musician2.0:重大更新
  • 作者: aaaaa
  • 创建于 : 2026-04-29 17:00:00
  • 更新于 : 2026-04-29 17:07:04
  • 链接: https://redefine.ohevan.com/2026/04/29/Musician2.0:重大更新/
  • 版权声明: 版权所有 © aaaaa,禁止转载。