lx-source/update.md
2024-02-15 23:55:41 +08:00

263 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Lx-Source/更新日志
<!-- #### \# 2024-02-14 v1.0.3-rel (release)
+ **停止更新:感谢这三个月的陪伴,现因无力维护,停止后续更新,发布最后版本,大家有缘再见** -->
#### \# 2024-02-15 v1.0.3-pre (pre)
+ Wy源刷新登录模式确定每天执行一次合并Cookie
+ zTool: task: 增加传参 now(int64): 执行时间(Unix)
+ 优化Tx源刷新登录函数兼容计划任务错误处理模式
+ 对源脚本进行部分更改建议重新下载导入http://127.0.0.1:1011/lx-custom-source.js
+ 简单优化旧版LinkHandler
+ 支持Mg源自定义账号
#### \# 2024-02-12 v1.0.3-pre-d1 (pre)
<!-- + 预留小洛源(lx)更名为local -->
+ 确定tx刷新登录间隔6天
+ 更新源接口定义
#### \# 2024-02-09 v1.0.3-pre-d1 (pre)
+ 数据表结构规划中,暂时推迟
+ 修复wy源builtin接口√
+ 使用计划任务定期清理日志缓存√
#### \# 2024-02-07 v1.0.3-pre-d1 (pre)
<!-- + 支持为本地缓存接口设置速率限制 -->
+ 修复Tx源刷新登录到期时间问题(默认14天)
+ Kg源使用新版接口彻底弃用MusicId传参
+ 优化linkrouter
#### \# 2024-02-03 v1.0.3-pre-d1 (dev)
+ ~~更新一个大版本~~
+ 源脚本:**兼容**洛雪手机端v1.2.0版本
+ 计划引入SQLite支持(GORM)支持缓存请求重写Router/Caches逻辑
+ 修复linux环境非root用户启动无法创建配置目录提示权限不够问题
#### \# 2024-01-31 v1.0.2-b12-d3 (dev)
+ [重构请求处理逻辑]:
```
首先拆分为三部分Before(前置检测), Middle(获取数据), After(验证结果)
可解决部分重复代码,但传参难以统一
```
+ [缓存数据目录]:
```
128k.mp3 320k.mp3 flac.flac fl64.flac lyric.lrc cover.jpg info.json
| 各音质文件缓存 | 歌词 | 封面 | 详情 |
```
+ [数据库表结构]:
```
暂未确定
```
+ 计划引入SQLite支持缓存歌曲详情
+ 更新go.mod依赖
+ 默认文件权限改为0777
+ 屏蔽部分未实现功能配置项
#### \# 2024-01-29 v1.0.2-b12-d3 (dev)
+ 增加启动参数 `-p 0777` 设置默认文件权限 解决非root用户下的权限问题 (部分情况0666不管用)
+ **(注:为保证正确解析八进制数据,开头的"0"不能去掉!)**
+ 低调行事删除源脚本内Github仓库地址
+ 构建时修改版本号?
+ 本地缓存:下载出错后删除文件
+ 更新wy内置源Api地址
+ 优化配置文件保存逻辑
+ 支持使用自定义NeteaseCloudMusicApi项目(beta)
+ (注:当前测试阶段,强行与旧逻辑兼容,可能无法达到最佳性能)
+ 计划重构源请求逻辑合并builtin与custom目录?
+ 支持wy源检测音质是否可用(需启用qualityMapReverse支持)
+ 计划将参数传入Query忽略实际音质不匹配强制缓存
#### \# 2024-01-27 v1.0.2-b12-d3 (dev)
+ wy源Cookie长期有效(一个月左右),且刷新逻辑未知,暂时禁用刷新登录功能
+ 将router和middleware整合到server文件夹
+ 自适应本地缓存绑定地址(beta),多端口建议开启,但缺少灵活性
+ windows平台调用loger.Fatal后显示按任意键继续(优化防止闪退)
#### \# 2024-01-26 v1.0.2-b12-d3 (dev)
+ 计划增加命令行模式配置账号登录(测试版)
+ 启动命令 `./lx-source-linux-amd64v2 -e menu`
+ 清理部分无用注释
#### \# 2024-01-24 v1.0.2-b12-d3 (dev)
<!-- + wyApi项目被警告删库暂时停止相关更新 -->
+ 模块化wyApi部分√
+ \[Auth\] 将Key验证模块移至速率限制模块后
+ 优化main.go使用zcypt.RandomBytes函数
+ 添加对象池手动释放Loger优化创建速度
+ 添加多端口监听支持
+ 支持配置全局代理、伪装ip
+ 支持使用163api模式获取歌曲
#### \# 2024-01-21 v1.0.2-b12-d2 (dev)
+ 新版api结构设计(暂定)
```
# 基础接口
/
/link/{source}/{musicid}/{quality}
# 功能接口
/api/{source}/{method}/{query}
| 源 | 功能 | 参数 |
/api/wy/link/?id=xxx&quality=320k&key=xxx
# 软件接口
/app/{name}/{method}/{?query}
| 名称 | 功能 |
/app/lxmusic/link (参数通过post传入)
/app/musicfree/xxx (计划支持MusicFree)
```
+ 添加wy外链获取v1支持并改用此版本
+ 计划:统一错误输出,进行以下分类
+ 验证失败(Verify Failed)、实际音质不匹配、无返回数据(No Data)、...
<!-- + 其它这一段时间主要完善wy源接口kg和mg账号源推迟更新 -->
#### \# 2024-01-19 v1.0.2-b12-d2 (dev)
+ 添加wy批量SongUrl获取排序功能
+ 完善wy请求加密支持
+ 添加wy刷新登录模块(beta)
+ 待优化cookie需要频繁在map和string之间转换
#### \# 2024-01-18 v1.0.2-b12-d1 (dev)
+ 对部分功能实现方式进行优化去除qualityMapReverse依赖
+ 由于wy修改api验证方式python版逻辑已不可用现参考NeteaseCloudMusicApi项目进行修改
+ 实现wy外链获取逻辑(暂未实装)
<!-- + 添加wy电台(wd)支持 -->
#### \# 2024-01-15 v1.0.2-b11 (beta)
<!-- + 支持ForceFallback(忽略音质限制,获取试听音频) -->
+ 测试版MusicId验证
+ (注:任何前置验证都必然会延长响应时间,请确认会用到再开启)
+ 修复wy源内置接口
#### \# 2024-01-13 v1.0.2-b10 (beta)
+ 不再支持自定义Public目录默认使用内置embedFS提供服务
+ 修改脚本更新路径为 `public/lx-custom-source.js`
+ 优化kw内置源获取方式
+ 强制使用默认Script配置
+ 隐藏服务端信息中的`developer,github`字段
+ 为Windows构建添加文件属性
<!-- + 添加wy源接口分流功能 -->
#### \# 2024-01-10 v1.0.2-b10-d1 (dev)
<!-- + 内置kw接口失效暂时禁用kw源 -->
+ 修复内置kw接口
#### \# 2024-01-07 v1.0.2-b0.9 (beta)
<!-- + 不再导出 `public` 目录,源脚本统一到 `/lx-custom-source.js` 获取
+ 为每个源单独设置直链缓存时间 -->
+ 开启tx源账号解析时启用文件缓存
+ 移植tx源刷新登录功能
+ 注之前没有登录过手机qq音乐的账号签到可免费领绿钻会员
+ **已知问题生成直链会暴露uin且无法移除共享时请务必使用缓存**
+ 完善速率限制功能:增加容忍限度、封禁时间,详见配置注释
+ 准备弃用"MusicId-字符串"传附加参数的方式
+ 计划:重构音质对应表部分,每个源使用独立音质表
+ 更换wy内置接口为qz源
+ 默认监听地址改为127.0.0.1
<!-- + *内置接口失效暂时禁用wy源 (如恢复可修改 [Custom].Wy_Enable=true)* -->
#### \# 2024-01-01 v1.0.2-b0.8 (beta)
+ 注:新年第一次更新,祝大家听歌愉快
- 根据源启用状态生成支持音质表
#### \# 2023-12-31 v1.0.2-b0.8.2 (dev)
- 注本次还是累积更新不单独发布Release
+ 从Python版移植部分代码
+ (兼容tx源一分钟试听链接获取)
+ 优化速率限制相关逻辑
#### 2023-12-30 v1.0.2-b0.8.1 (dev)
+ 注本次累积更新不单独发布Release
+ 实现单ip速率限制配置方法
- **[Auth].RateLimit**
* _Enable(false): 开启功能
* _Block(30): 单位时间
* _Single(15): 单ip限制次数
- 实际速率: 15次每30秒
+ (目前仅对解析接口使用,文件接口不受限制)
#### 2023-12-25 v1.0.2-b0.7 (beta)
<!-- + 支持调用 ffmpeg 恢复kg一分钟试听数据真实长度
+ (测试版需要Path里有ffmpeg命令配置文件 [Main].FFConv=true 开启) -->
+ 修复tx试听源获取128k音质 (原先默认获取的是96k的m4a)
+ **很不幸,又要更新客户端脚本了...**
+ (要不直接把musicinfo Post到服务端处理吧)
### 2023-12-24 v1.0.2-b0.6 (beta)
#### 功能:
<!-- + 将试听接口独立为直连接口,其它源未实现的自动回退到此接口 (可在配置中关闭) -->
+ 添加tx试听源(同样不计入缓存)
+ [不兼容] 支持使用服务端返回音质列表
#### 注:
+ **请再次更新客户端脚本!**
+ 支持从服务端获取内置脚本: http://127.0.0.1:1011/lx-custom-source.js
#### 已知问题:
+ kg试听源返回1分钟试听文件会错误识别成完整版导致播放器卡死
#### **2023-12-23 v1.0.2-b0.5 (beta)**
<!-- + zTool:
- 修复直接传入make([]byte, n)时潜在内存泄露问题 -->
### update:
- 请求解析接口时遇到的错误输出到log不返回msg
<!-- - 服务端返回音质列表(需更新脚本) -->
### feature:
- 添加kg试听源(不计入缓存) **\*(需更新脚本)**
- 注部分歌曲只能试听前1分钟内容无法试听的无法播放
- (请手动删除 `data/public` 目录后启动程序重新释放静态资源)
- 脚本还是 `data/public/lx-coustom-source.js`开了Key验证的记得将原apipass复制过去
### bugfix:
- 修复wy源返回错误判断逻辑
<!-- + [msg] 当前api结构与动态链实现方式不兼容需要大改故推迟更新 -->
#### 2023-12-22 v1.0.2-b0.4 (beta)
<!-- + 没有功能更新,几个未来的想法
- 利用缓存信息制作数据库可通过api搜索音乐
- 修改Lx-Music支持通过脚本新增搜索源 -->
+ update 更新:
- 给CacheQuery加个sync.Pool提高并发分配效率
- 请求验证改为在初始化时载入,降低每次判断性能损耗
<!-- - (现在内存缓存和文件缓存的响应速度差距约为200µs) -->
+ feature 功能:
- 临时链生成仍将推迟
+ bugfix 修复:
- 临时解决预定义(*Loger).NewGroup()无法输出到FileLoger问题
+ 注:
- 如果非调试使用建议关闭控制台日志输出 [Main].Print=false可少量提升io性能 (不影响文件日志记录)
#### 2023-12-19 1.0.2-b0.3 (dev)
+ 增加dev分支日常开发稳定了再合main防止临时补充更新情况
+ 上次补充更新内容将error.mp3换成远程连接
- 洛雪客户端似乎无法识别Base64编码后的音频文件
- 待解决问题无法获取真实请求URL如套一层Nginx或分路径反代只能依赖手动配置的 [Cache].Local_Bind 确定外部地址
+ zTool:
- 略微降低FileLogs缓存大小防止异常退出丢**太多**日志情况 (TODO: Error及以上情况强制刷新缓冲区)
- cmd: 优化io.Copy缓存问题
+ (未完成) 临时链生成功能 (需要维护双倍的映射表,实际速度可能减慢)
+ (实验性) [Main].SysLev 尝试调高程序优先级以解决windows下最小化降低资源分配问题
#### 2023-12-(17-18) 1.0.2-β0.2 (beta)
+ 脚本增加请求耗时输出
+ 优化zTool文件下载逻辑
+ 链接缓存由Source上移至Router级 (为临时链实现基础)
+ 完善缓存规则
- 查询成功将链接写入内存,保留一小时 (MemCache HIT)
- 解析错误将空字符串写入内存阻止请求10分钟 (MemCache Reject)
+ 可提升后续重复查询响应速度 (实际效果不明显后端几十µs的差距)
+ 防止自动换源机制瞎查,解析失败返回一段提示语音
```
非常抱歉,
本音频可能由以下原因导致无法正常播放,
不支持的平台或音质,
触发风控或专辑单独收费,
缓存文件已被删除,
实际音质不匹配,
--洛雪自定义源
Lx-Source
```
#### ~2023-12-16
+ 参考Python版移植部分功能
+ 完善、优化逻辑
+ 发布源码
#### 2023-10-21
+ 立项制作