feat: 文件代理、群消息防双发、下载指令出选歌菜单与音频平台选集
代码测试 / ruff + pytest (push) Canceled after 0s

- 文件代理(PUBLIC_URL):上传与直链文本的 URL 换成 bot 公开地址,请求
  到来现场重解析直链再转发字节,绕开 QQ 抓风控直链失败(40093007)与
  qs 本地流外网不可达;PROXY_PORT 指定监听端口
- 群消息去重补第二把钥匙:全量模式下 @消息同时命中两事件且 msg_id 不同,
  只按 msg_id 拦不住,再加「群+发送人+文本」10 秒短窗(修双发)
- 「<平台>下载 <歌名>」改出该平台的选歌菜单(与 /点歌 同款交互、spage
  翻页锁定平台),不再直接下第一首
- 猫耳/懒人/蜻蜓节目级条目点编号先出选集菜单(/album):猫耳选集接口
  忽略翻页参数,一次拉 50 集本地切片;懒人/蜻蜓走服务端翻页;空选集
  (已下线/需登录)给明确提示
- 指令面板条目按 /sources 现算、按宽度裁剪(修 30013 超限);装配入口
  改用 Bot 门面;qqbotsdk 依赖更名 qqbotsdk-py(撤 GitHub archive 源)
This commit is contained in:
snowy-yang committed 2026-10-03 23:55:33 +08:00
1 parent 324fe86962
commit c364506925
10 files changed
+1883 -254

No files matched your search

+13 -1
View File
@@ -3,7 +3,8 @@ APPID=你的AppID
APPSECRET=你的AppSecret
CONNECTER=websocket
# MusicServer(lx-music 聚合音源)
# MusicServer(lx-music 聚合音源,需要 /sources 报告平台、路径式 /search 的新版)
# 平台 id 以服务器 /sources 为准:kw/kg/tx/wy/qs + xm/me/qt/lr(音频平台)
MUSIC_SERVER_URL=http://127.0.0.1:16688
MUSIC_QUALITY=128k
MUSIC_SOURCE=tx # 默认 QQ 音乐,留空聚合全源
@@ -21,6 +22,17 @@ WITHDRAW=on
# 播放按钮不受影响,始终发语音。非法值按 link 处理。
SEND_MODE=link
# 文件代理:bot 自建 HTTP 服务中转音频,把上传用/直链文本里的 URL 换成
# 自己的公开地址——QQ 服务器抓风控直链(40093007)或 qs 本地解密流抓不到
# 时经 bot 中转即可。PUBLIC_URL 填 QQ 服务器/群友能访问到的本机地址(公网
# IP:端口,或反代域名),配置后默认开启,FILE_PROXY=off 可关。bot 主机需
# 公网可达(公网 IP 或端口映射),否则上传失败、回退直链文本。
#PUBLIC_URL=http://1.2.3.4:16689
#FILE_PROXY=on
# PROXY_PORT:本机监听端口,缺省用 PUBLIC_URL 里的端口(无端口则 16689);
# https 域名走反向代理时必须显式指定(bot 本身不收 TLS)。
#PROXY_PORT=16689
# 日志:级别可选 TRACE/DEBUG/INFO/SUCCESS/WARNING/ERROR/CRITICAL(默认 INFO);
# 日志同时输出到控制台与 LOG_DIR/musicbot.log(按天轮转、保留 7 天)
LOG_LEVEL=INFO