Skip to content
This repository has been archived by the owner on Oct 19, 2024. It is now read-only.

Latest commit

 

History

History
349 lines (304 loc) · 14.7 KB

update.md

File metadata and controls

349 lines (304 loc) · 14.7 KB

Lx-Source/更新日志

# 2024-06-22 v1.0.3.0622 (dev)

  • 临近期末,暂缓更新,计划假期重构服务端v1.1.0
  • 更新源脚本,使用 WebPack 构建,支持自定义更多参数
  • 体验地址 /lx-source-script.js,添加 ?key=请求密钥
  • 更新编译脚本,支持MuslLibC、静态构建,支持自动发布Release

# 2024-06-14 v1.0.3.0614 (dev)

  • 更新编译脚本,支持更多架构

# 2024-05-31 v1.0.3.0531 (dev)

  • Wy源优化模块,同步部分更改
  • Kw源测试接口,无需白名单包名(二次甚至三次查询)
  • Kw源允许自定义Des_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源刷新登录函数,兼容计划任务错误处理模式
  • 对源脚本进行部分更改,建议重新下载导入(http://127.0.0.1:1011/lx-custom-source.js
  • 简单优化旧版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试听源(同样不计入缓存)
  • [不兼容] 支持使用服务端返回音质列表

注:

已知问题:

  • 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

  • 立项制作