111 Commits
Author SHA1 Message Date
DerrorsandClaude Code d27857c4d4 fix: 修复电驴电影探测并发布 v1.5.2
统一电影选片的季集字段,修正空季集摘要并补齐回归测试。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-11-04 23:19:16 +08:00
DerrorsandClaude Code 30d42ed97b fix: 修正云下载核验状态并发布 v1.5.1
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-11-01 15:18:04 +08:00
DerrorsandClaude Code 3c1aa2de13 docs: 补齐中英文文档站与语言切换
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-11-01 12:55:26 +08:00
DerrorsandClaude Code 07b5d526b6 chore: 发布 v1.5.0
修复影视字段片名识别,精简 README,并同步已发布功能说明。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-11-01 12:22:17 +08:00
Qinghe LiandClaude Code e1d28d94f9 feat: 合入订阅过滤、识别修复与文档站(#1)
合并已通过 CI 的功能修复和文档站,随后由独立工作流发布 GitHub Pages。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-11-01 11:45:41 +08:00
DerrorsandClaude Code 4211c5b0cf docs: 搭建 VitePress 文档站并接入 GitHub Pages
复用现有 Markdown,增加项目首页、中文搜索、分组导航、明暗主题和流程图渲染。保留 GitHub 锚点,检查构建后的链接与资源,并通过独立工作流发布文档站。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-11-01 11:41:59 +08:00
DerrorsandClaude Code ecae44a6b4 feat: 支持仅处理订阅并完善项目使用指南
增加全局与来源级订阅过滤,统一正式处理与测试预览。修复电驴链接提示和 AI 规则生成格式兼容问题,并补齐回归测试。

重写项目介绍,补全快速开始、日常使用、常见问题和文档导航。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-11-01 11:22:51 +08:00
DerrorsandClaude Opus 5.5 60e1a46341 chore: 发布 v1.4.1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:11:31 +08:00
DerrorsandClaude Opus 5.5 cb8c577be6 feat: 控制 Bot 里发「/subs 片名」直接找剧订阅,/subs 列表不再列出已播完的订阅
/subs 后面写片名(可加季号)时,复用管理台「一句话找剧」在 TMDB 找候选,每季一个按钮,点选即订阅;待审批里已有这部剧这一季时可以一并转存。
/subs 列表只列在追的剧,已播完、自动结束的订阅不再列出(播完时的通知上仍可继续订阅)。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:11:30 +08:00
DerrorsandClaude Opus 5.5 e45eb66abd chore: 发布 v1.4.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 08:58:13 +08:00
DerrorsandClaude Opus 5.5 be42c3330c feat: 支持电驴(ed2k)链接,交给 115 云下载后照常核对、整理入库
只有电驴链接、没有 115 分享的消息:从正文、超链接与消息按钮(链接按钮、「点击复制」)识别链接,按链接里的文件名与大小选集、显示大小与版本,
加成 115 云下载任务下到独占暂存目录,读回核对后整理入库;没下完时后台复查并写明进度,下载失败不再重试。
同一个链接 115 只认一个任务:旧任务已完成或失败时删掉记录再添加,还在下载时稍后重试;核验通过后删掉任务记录(不删文件)。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 08:57:56 +08:00
DerrorsandClaude Opus 5.5 45b13487c0 feat: 一张来源卡片可以填多个来源,共用这张卡片的设置
sources[].bot 可以写成列表(只有一个时仍是字符串,旧配置不用改),一个来源只能出现在一张卡片里。
消息匹配、一句话生成规则、AI 评估的屏蔽词、接入向导按卡片处理;确认统计与「改为 AI 处理」的建议按卡片合起来算。
管理台的「Bot 或频道」可以用逗号分开填多个,识别规则对话框可选从哪个来源取样例。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 07:33:32 +08:00
DerrorsandClaude Opus 5.5 abe78e4b2c chore: 发布 v1.3.3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 21:22:47 +08:00
DerrorsandClaude Opus 5.5 839f495260 fix: AI 按偏好判断时告诉它这部剧已订阅
订阅放行的新集,发给 AI 的内容里带上已订阅的剧和季,并说明除非偏好明确排除,否则放行,不要因为历史里忽略过单集而交给你确认。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 21:22:47 +08:00
DerrorsandClaude Opus 5.5 3a5c966a54 chore: 发布 v1.3.2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 14:10:13 +08:00
DerrorsandClaude Opus 5.5 24bd27800d fix: Telegram 断开期间发不出的告警,恢复后补发并注明发生时间
告警与恢复通知不再按次数放弃(原来约 7 分钟后放弃),24 小时内每分钟重试;晚于发生 2 分钟以上才送达的告警末尾注明发生时间。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 14:10:13 +08:00
DerrorsandClaude Opus 5.5 b9ae25b49f chore: 发布 v1.3.1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 11:31:19 +08:00
DerrorsandClaude Opus 5.5 5326739e7a fix: Telegram 卡片按分享与已转存的文件补上分辨率、片源与大小
消息没写时,分辨率按文件名补,文件名也没写时用 115 识别的清晰度(读分享状态的同一次请求取到);
片源按文件名补;大小在入库通知里用实际转存文件的总大小,待审批卡片用分享根目录里这次要转存的视频的总大小。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 11:31:10 +08:00
DerrorsandClaude Opus 5.5 b38ecb5e57 chore: 发布 v1.3.0
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-28 10:53:36 +08:00
DerrorsandClaude Opus 5.5 3049211e6f fix: 已入库的集直接跳过,AI 偏好判断不再选择保存目录,AI 评估兼容直接回数组
放行判断时,识别可靠、TMDB 已匹配且消息里的集都已入库的直接跳过,不再交给你确认(批准了也会在转存前被去重拦下)。
「AI 按偏好判断」只决定放不放行,保存位置只按来源的「保存到」与二级分类。
要求只含一个数组字段的结构时,模型直接回数组也照常校验(统计页「AI 评估」、待审批的建议措辞)。

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-28 10:53:21 +08:00
DerrorsandClaude Opus 5.5 583deead34 chore: 发布 v1.2.2
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-27 23:04:31 +08:00
DerrorsandClaude Opus 5.5 30a58bef5a fix: AI 按偏好判断写明结论与理由,重复资源的忽略不再作为偏好样本
处理过程里记下 AI 的结论、选的目录和理由,订阅放行被推翻、AI 不可用或出错时也写明。
消息里的集都已入库时点忽略,不再记为样本,AI 不会据此以为你不想要这部剧。

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-27 23:04:21 +08:00
DerrorsandClaude Opus 5.5 12f07721a1 chore: 发布 v1.2.1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-27 16:42:43 +08:00
DerrorsandClaude Opus 5.5 5a5b386ff8 fix: Telegram 断开后在主进程里重新连接,断网照常告警
监听与控制 Bot 不再用 Telethon 的自动重连:经透明代理时它看不出已经断开,网络恢复时积压的请求一齐发出会被 Telegram 限流,主进程随之退出。
现在断开后用新的客户端重新连接并补拉消息,连接加超时,限流与服务端出错按临时问题重试;断开时间从断开的那一刻算,恢复通知写明断开了多久。

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-27 16:42:33 +08:00
DerrorsandClaude Opus 5.5 5dede2468f chore: 发布 v1.2.0
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-26 23:04:44 +08:00
DerrorsandClaude Opus 5.5 63612588b9 fix: Telegram 审批卡片跟随任务更新,「追剧」改为追剧并转存
在管理台、对话助手、批量操作或「不再接收」里处理了待审批的资源后,Bot 把对应的审批卡片改成处理结果并去掉审批按钮。
卡片上的「追剧并转存」订阅这一季并转存这一集;转存之后的卡片上仍可追剧。

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-26 23:04:29 +08:00
DerrorsandClaude Opus 5.5 b91fa34299 feat: 来源设置的「转存方式」改名为「放行方式」,显示所选方式的说明
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-26 23:04:16 +08:00
DerrorsandClaude Opus 5.5 466922b743 chore: 发布 v1.1.2
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 19:39:36 +08:00
DerrorsandClaude Opus 5.5 008daf2b14 fix(115): 「操作尚未执行完成」不再被当成风控与令牌失效,风控冷却跨重启保持
- 错误码按完整数字匹配:回应里的 990009 不再被当成令牌失效的 99,写操作也就不会因此改走 cookie 再发一次
- 990009 不单凭错误码判风控,按说明判断(过于频繁才算)
- 115 说上一个操作尚未执行完成时,这次写请求被推迟、没有执行:抛 StorageBusy,30 秒后自动重试;
  放弃转存遇到时由 Worker 延后再执行,不再转人工
- 风控冷却的结束时间存进数据库,主进程重启后接着冷却;启动时已没有冷却就清掉残留的告警,
  否则它一直显示生效中,下次真的触发风控也不会再提醒
- 文档与 CHANGELOG 同步

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 19:39:23 +08:00
DerrorsandClaude Opus 5.5 7b7dd40963 chore: 发布 v1.1.1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 19:16:27 +08:00
DerrorsandClaude Opus 5.5 71e40746a1 fix: 转存后一个文件都没到时提前提醒,并记下 115 对转存请求的回应
- 自动复查改为比较每次的核验结果:连续 3 次一样(一个文件都没到、只到了一部分、到的文件对不上)就提前提醒一次,
  后台继续复查;以前一个文件都没到时要等 24 小时才提醒
- 提醒写明多次复查的结果,附「核验转存 / 放弃并删除」按钮
- TransferUncertain 新增可选的 response:115 接受了转存请求、文件却迟迟没到时带上它当时的回应,内核写进任务轨迹
- 架构、部署、插件指南与 CHANGELOG 同步

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 19:16:14 +08:00
DerrorsandClaude Opus 5.5 38d62d7c0e chore: 发布 v1.1.0
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 14:52:34 +08:00
DerrorsandClaude Opus 5.5 9db99e9108 feat: 支持网络代理,Telegram、TMDB 与 AI 服务可分别走 HTTP / SOCKS5 代理
- 新增系统配置 proxy:代理地址与 Telegram、TMDB、AI 服务各自的开关;115 始终直连,
  没开代理的服务按原来的方式连接(TMDB 与 AI 仍认 HTTP(S)_PROXY)
- 代理密码作为密钥 proxy_password 存在 secrets.json,地址里只写用户名;与 AI 密钥一样绑定地址,
  改了地址自动清除,测试时也只发给已保存的地址
- Telegram 监听、控制 Bot 与终端登录经 Telethon 的 proxy 参数连接,监听重试时读取最新配置;
  直连失败的提示指向「网络代理」
- TMDB 走代理时改用 httpx2(标准库不支持 SOCKS),报错与直连一致且不带含 api_key 的地址;
  AI 客户端经代理连接,代理变了重建客户端
- 管理台新增「网络代理」页签:地址、代理密码、服务开关与「测试代理」(先确认代理可达,
  再逐项连接,Telegram 只建立连接不登录)
- 依赖:python-socks(Telethon 代理)、socksio(httpx2 的 SOCKS5),constraints.txt 同步
- 文档:配置参考、快速开始、配置示例与 CHANGELOG

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 14:51:02 +08:00
DerrorsandClaude Opus 5.5 166e92e4e1 docs: 快速开始补充添加监听来源的完整说明,推荐 @QukanMovie
- 新增「添加监听来源」一节:来源怎么填(含私有频道的数字 ID)、用样例消息接入与手动添加、
  来源卡片上各项设置、测试识别与识别规则、生效与排查
- 推荐来源 @QukanMovie,附作者在用的过滤与识别设置,并说明由第三方运营、与本项目无关
- 免责声明、CONTRIBUTING 与 README 同步:不内置来源,快速开始里的推荐来源是唯一例外

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 10:42:23 +08:00
DerrorsandClaude Opus 5.5 ffd91abfd1 chore: 发布 v1.0.3
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 10:21:04 +08:00
DerrorsandClaude Opus 5.5 020dd19ef2 fix: 入库去重按作品区分,同名的不同作品不再被当成已入库
- 新增 core/works.py 统一作品身份:两边都有 TMDB ID 时按类型与 ID,否则按规范片名与年份;都不知道时按同一部处理,
  宁可转人工也不重复转存
- 内容级去重键改为「目标:规范片名|年份|TMDB|Sxx|Exx」;转存前与发送前查已入库的集都按作品比较
- 转存占位只按规范片名:同名的不同作品依次转存,身份判断不准时也不会同时转存同一集
- 已入库集数改为按作品汇总:订阅放行、追剧订阅页、追更巡检、待审批建议与缺集统计不再混合同名作品的集
- 数据库迁移 v2:按入库任务的快照补上已有去重记录的年份与 TMDB ID,转存中的占位改用新格式
- 文档:架构、插件指南(stored_series)与 CHANGELOG 同步

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 10:20:51 +08:00
DerrorsandClaude Opus 5.5 bbaa5bf2c2 chore: 发布 v1.0.2
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 09:18:27 +08:00
DerrorsandClaude Opus 5.5 61a9fe4b61 feat: Telegram 卡片去掉音轨,分辨率、片源、大小单独成组
- 卡片字段分两组:评分、类型、地区、语言、主演;空一行后是分辨率、片源、大小,有字幕信息时再加一行字幕
- 不再显示音轨(与「语言」重复);片源、大小与分辨率一样,消息里没写时显示「未标注」
- 待审批卡片、入库通知与需要处理的提醒共用这段字段;README 卡片示例同步

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 09:17:01 +08:00
DerrorsandClaude Opus 5.5 981223add2 chore: 发布 v1.0.1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 00:09:12 +08:00
DerrorsandClaude Opus 5.5 9ce5343da2 fix: 首次打开管理台先设置登录密码,局域网设备也能完成
- 还没有密码时,管理台先显示设置密码页,设好后直接登录;NAS 上没有浏览器时,用局域网里的设备也能完成首次设置
- 首次设置(POST /api/auth/setup)只在请求来自局域网或本机、地址栏是 IP 或 localhost 时可用:挡住公网请求与 DNS 重绑定;
  设好之前其他接口仍只接受本机访问,设好一次后不能再用
- 用域名或从公网打开时说明原因(请用 IP 地址打开);Web 登录密码至少 8 个字符
- 快速开始、部署、配置参考、SECURITY 与 README 同步说明

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 00:08:39 +08:00
DerrorsandClaude Opus 5.5 62979fc078 docs: 部署文档补充用宿主机目录存放数据
- 新增「用宿主机目录存放数据」:推荐以宿主机用户运行(user + HOME),也可以沿用镜像的 UID 10001 并先 chown
- 说明 HOME 必须设:镜像里没有该用户的家目录,115 客户端启动时要在家目录下建缓存,不设时转存与整理都不可用
- 先建好目录再启动;外部插件直接放进 data/plugins;备份时停止服务后打包这个目录

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 23:53:42 +08:00
DerrorsandClaude Opus 5.5 4346b41964 chore: 发布 v1.0.0
- 版本号改为 1.0.0,classifier 改为 Production/Stable
- README 状态说明改为正式版:遵循语义化版本,1.x 内配置与数据格式保持兼容
- 文档中的镜像版本示例改为 1.0.0

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 23:33:04 +08:00
DerrorsandClaude Opus 5.5 a8f6851556 fix: 未配置的控制 Bot 在总览显示「未配置」
- 控制 Bot 没有 token 或数字 ID 时,健康状态报告 not_configured 并说明去哪里填写,不再显示为红色的「连接中断」
- CHANGELOG 去掉面向旧版本升级的说明

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 23:31:17 +08:00
DerrorsandClaude Opus 5.5 a578a9e84c docs: 文档与实现对齐
- 架构:状态机(人工忽略为 skipped)、按版本的配置快照、补拉、StorageBusy 与风控暂停
- 部署:没设密码只允许本机、匿名可访问的接口、按 IP 限流与可信代理、健康检查;配置参考:订阅移出配置、密钥随地址清除、补全环境变量
- 插件指南:存储 Provider 契约、requires_storage、能力查询与 Services、UsesAI
- README 中英:入库与通知示例按当前默认命名,去掉 chown 步骤,状态改为 Beta;快速开始的界面文案对齐
- CONTRIBUTING:代码与测试结构、依赖锁定;CHANGELOG [Unreleased] 精简

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 23:15:11 +08:00
DerrorsandClaude Opus 5.5 63c5cb4410 build: 依赖加版本上限并锁定确切版本
- pyproject 加大版本上限,mcp 要求 2.x,all 引用 full / web / agent;classifier 改为 Beta
- 新增 constraints.txt,Docker 镜像与 CI 按它安装
- Dockerfile 去掉 /app/config;清理 .gitignore / .dockerignore 中的旧条目;版本号示例更新

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 23:15:11 +08:00
DerrorsandClaude Opus 5.5 833ed2e672 refactor(console): 管理台统一请求与类型,可用操作由后端给出
- TypeScript strict;统一的请求封装与按领域的接口模块;数据路由,离开设置页前确认未保存的修改
- 任务与待审批的可用操作按后端返回的 actions 显示;媒体库改用 /api/library
- AI 设置换了地址时要求填写这个地址的密钥,保存后提示被清除的密钥
- 无法访问时整页说明原因(如没设密码时从其他设备打开);页脚显示版本号;Telegram 监听显示「未登录」
- 「用一句话生成规则」重新排版;删除未用的组件、样式与依赖

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 23:15:04 +08:00
DerrorsandClaude Opus 5.5 a931af3861 test: 测试按模块重组,共用替身移到 tests/fakes.py
- 按被测模块组织(test_pipeline、test_storage、test_web_auth 等),删除按开发阶段命名的文件与失效的 smoke_console.py
- FakeAI、FakeTelegram、样例消息与 PipelineCase / ServiceCase / WebCase 基类集中到 tests/fakes.py
- 补充测试:季集识别、访问守卫与跨站写、密钥随地址清除、批量操作计划、StorageBusy 延后、风控暂停、
  cookie 先验后存、密钥原子更新、配置快照、心跳限频、通知清理、Telegram 等待配置与补拉水位

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 23:15:04 +08:00
DerrorsandClaude Opus 5.5 aa91c9e1c4 fix: eval 导出不再崩溃
- export 不再读取只有 run 才有的 --dataset
- --help、export、compare 不再创建或读取配置与密钥

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 23:15:03 +08:00
DerrorsandClaude Opus 5.5 cb3369c874 refactor(web): 管理接口改为 reelay/web 包,加访问守卫与统一错误响应
- 每个资源一个 APIRouter;不存在、冲突、输入错误、网盘暂时不可用分别回 404 / 409 / 422 / 503,其余错误只回通用说明
- 访问守卫:没设密码时只接受本机 Host;拒绝跨站写请求;挂在路径前缀下也生效;接口文档移到 /api/docs 并要求登录
- 登录限流按代理转发的真实地址计数(REELAY_FORWARDED_ALLOW_IPS),密码校验放到线程里,失败记录有上限
- 115 cookie 先验证再保存;删除前端不用的接口,GET /api/config 不再返回配置原文
- 实时推送只在有订阅者时轮询,登出后结束推送

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 23:15:03 +08:00
DerrorsandClaude Opus 5.5 7bca837569 fix(bot): 批量操作只处理确认时列出的任务,修正与换目录更可靠
- 「全部批准 / 全部忽略」确认时记下任务清单(十分钟内有效),按钮只带计划 ID,执行一次后作废
- 回复修正后清除待修正状态;换目录按钮按目录别名的短键定位,目录增删后不会存错
- 按钮数据统一用 callback / parse_callback 编解码,并检查 64 字节上限
- 助手的写工具与动词从工具定义生成;批量操作统一走 service.bulk;送给 AI 的识别结果去掉分享码
- MCP 只支持 mcp 2.x

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 23:15:03 +08:00