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

Generated
+8 -14
View File
@@ -473,7 +473,7 @@ version = "0.1.0"
source = { editable = "." }
dependencies = [
{ name = "loguru" },
{ name = "qqbotsdk" },
{ name = "qqbotsdk-py" },
]
[package.dev-dependencies]
@@ -487,7 +487,7 @@ dev = [
[package.metadata]
requires-dist = [
{ name = "loguru" },
{ name = "qqbotsdk", url = "https://github.com/snowy-yang/qqbotsdk/archive/refs/heads/main.tar.gz" },
{ name = "qqbotsdk-py" },
]
[package.metadata.requires-dev]
@@ -688,9 +688,9 @@ wheels = [
]
[[package]]
name = "qqbotsdk"
version = "0.1.0"
source = { url = "https://github.com/snowy-yang/qqbotsdk/archive/refs/heads/main.tar.gz" }
name = "qqbotsdk-py"
version = "0.2.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "aiohttp" },
{ name = "cryptography" },
@@ -698,15 +698,9 @@ dependencies = [
{ name = "python-dotenv" },
{ name = "ujson" },
]
sdist = { hash = "sha256:162be4706f256ccee5e371232d591776ce0997cb5481f61554a9b16e1b569bf5" }
[package.metadata]
requires-dist = [
{ name = "aiohttp", specifier = ">=3.14.3" },
{ name = "cryptography", specifier = ">=50.0.1" },
{ name = "loguru", specifier = ">=0.7.3" },
{ name = "python-dotenv", specifier = ">=1.2.3" },
{ name = "ujson", specifier = ">=6.0.0" },
sdist = { url = "https://files.pythonhosted.org/packages/6c/a2/9f5fb85a940df97a394f996739a52b4d8bcadba77bd3883bd1292ee1bc80/qqbotsdk_py-0.2.0.tar.gz", hash = "sha256:bb5e02ff3ba05a78a95418fde01f54e5d37880abdd61e27f52db06afd854243e", size = 39584, upload-time = "2026-10-03T12:12:12.058Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c0/9a/c7bf69fecd03ef7805b6af566ef91cafc7692adeefced4b447b60ea52063/qqbotsdk_py-0.2.0-py3-none-any.whl", hash = "sha256:84550cc53547377b13cb7d0ff78ac1a0df3cc733f81facf2783f3dcbe6801ab6", size = 52247, upload-time = "2026-10-03T12:12:10.763Z" },
]
[[package]]