## Lx-Source/更新日志 #### \# 2024-05-25 Special Ver (dev) + 更新Action构建脚本,正式兼容Go1.20(windows7) #### \# 2024-05-18 v1.0.3.0518 (dev) + (据用户反馈,当前账号添加方式过于复杂,很多参数不知道怎么填,故增加部分平台简化登录方式) + Tx源支持QQ快速登录(beta), 启动参数 `-e txqq` + 支持自定义错误音频地址(不填禁用), 位置 [Main].ErrMp3 + ~~修复若干已知Bug~~ #### \# 2024-05-03 v1.0.3.0503 (dev) + 基于 cr-go-sdk 重新支持 Cloudreve 缓存 + 解决Tx源一处Fallback死循环问题 #### \# 2024-04-30 v1.0.3.0430 (beta) + Tx源支持自定义CDN链接地址 + Wy源支持扫码登录(beta), 启动参数 `-e wyqr` + 支持在解析时通过?key=传入验证Key #### \# 2024-04-20 v1.0.3-rc3 (dev) + 新增状态页面,访问 `/status` 查看 + Go1.20兼容版见 go120 分支 #### \# 2024-04-06 v1.0.3-rc3 (dev) + Kg源新增刷新登录功能(之前尝试写了,一直没找到lite版的aeskey,感谢Python版提供关键参数) #### \# 2024-03-22 v1.0.3-rc3 (dev) + Kg源Lite签到模块新增错误码"登录已过期",目前Token有效期为一个月,暂未发现自动刷新方式 + 重制构建脚本,Action编译测试 + 降级构建go1.20版本以支持更早的系统(beta) #### \# 2024-03-16 v1.0.3-rc2 (dev) + Mg源新增接口,无需登录账号(二次查询,速度较慢) + 清理部分结构体未使用字段 + Tx源支持音质Fallback + Kg源Lite签到重试 #### \# 2024-03-08 v1.0.3-rc2 (dev) + 完善音质验证部分 + 刷新登录更新时间统一为指定日期0时0秒 #### \# 2024-02-22 v1.0.3-rc2 (dev) + 清理无用代码,删除旧版Router + 支持将内存缓存写入文件,重启程序不丢数据 + 优化计划任务逻辑: 发生错误不更新下次执行时间,以便在下次检测时重试 + **注:开学在即,项目暂缓更新** #### \# 2024-02-22 v1.0.3-rc1 (dev) + 修复wy源sky音质获取,增加更高音质常量 + (dolby->高清环绕, sky->沉浸环绕, master->超清母带) + 支持Kg源概念版自动签到(beta) + 统一缓存目录KGHASH为大写形式 + 源脚本获取地址添加 `?raw` 参数可直接下载 (要求开启自动补全 [Script].Auto>0) + 为部分需要二次查询的源添加缓存 + 为不同来源自定义直链缓存时间 #### \# 2024-02-20 v1.0.3-fix (fix) + 修复新版Wraper在Code不为0时未能正常结束Handler的问题 + zTool: 修复计划任务模块一处计时bug "时间倒流" + Tx源刷新登录间隔时间降至5天 + Wy源刷新登录间隔时间固定为1天 + Kg源暴露更多配置项 + 使用新版MusicRouter处理器(beta),兼容Python版**调用**方式? #### \# 2024-02-15 v1.0.3-pre (pre) + Wy源刷新登录模式确定:每天执行一次合并Cookie + zTool: task: 增加传参 now(int64): 执行时间(Unix) + 优化Tx源刷新登录函数,兼容计划任务错误处理模式 + 对源脚本进行部分更改,建议重新下载导入() + 简单优化旧版LinkHandler + 支持Mg源自定义账号 #### \# 2024-02-12 v1.0.3-pre-d1 (pre) + 确定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部分√ + \[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)、... #### \# 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外链获取逻辑(暂未实装) #### \# 2024-01-15 v1.0.2-b11 (beta) + 测试版MusicId验证 + (注:任何前置验证都必然会延长响应时间,请确认会用到再开启) + 修复wy源内置接口 #### \# 2024-01-13 v1.0.2-b10 (beta) + 不再支持自定义Public目录,默认使用内置embedFS提供服务 + 修改脚本更新路径为 `public/lx-custom-source.js` + 优化kw内置源获取方式 + 强制使用默认Script配置 + 隐藏服务端信息中的`developer,github`字段 + 为Windows构建添加文件属性 #### \# 2024-01-10 v1.0.2-b10-d1 (dev) + 修复内置kw接口 #### \# 2024-01-07 v1.0.2-b0.9 (beta) + 开启tx源账号解析时启用文件缓存 + 移植tx源刷新登录功能 + 注:之前没有登录过手机qq音乐的账号签到可免费领绿钻会员 + **已知问题:生成直链会暴露uin且无法移除,共享时请务必使用缓存** + 完善速率限制功能:增加容忍限度、封禁时间,详见配置注释 + 准备弃用"MusicId-字符串"传附加参数的方式 + 计划:重构音质对应表部分,每个源使用独立音质表 + 更换wy内置接口为qz源 + 默认监听地址改为127.0.0.1 #### \# 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) + 修复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)** ### update: - 请求解析接口时遇到的错误输出到log,不返回msg ### feature: - 添加kg试听源(不计入缓存) **\*(需更新脚本)** - 注:部分歌曲只能试听前1分钟内容,无法试听的无法播放 - (请手动删除 `data/public` 目录后启动程序重新释放静态资源) - 脚本还是 `data/public/lx-coustom-source.js`,开了Key验证的记得将原apipass复制过去 ### bugfix: - 修复wy源返回错误判断逻辑 #### 2023-12-22 v1.0.2-b0.4 (beta) + update 更新: - 给CacheQuery加个sync.Pool,提高并发分配效率 - 请求验证改为在初始化时载入,降低每次判断性能损耗 + 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 + 立项制作