docs: 快速开始补充添加监听来源的完整说明,推荐 @QukanMovie

- 新增「添加监听来源」一节:来源怎么填(含私有频道的数字 ID)、用样例消息接入与手动添加、
  来源卡片上各项设置、测试识别与识别规则、生效与排查
- 推荐来源 @QukanMovie,附作者在用的过滤与识别设置,并说明由第三方运营、与本项目无关
- 免责声明、CONTRIBUTING 与 README 同步:不内置来源,快速开始里的推荐来源是唯一例外

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
DerrorsandClaude Opus 5.5 committed 2026-10-25 10:42:23 +08:00
1 parent ffd91abfd1
commit 166e92e4e1
4 files changed
+76 -10

No files matched your search

+1 -1
View File
@@ -64,7 +64,7 @@ tests/ # 后端测试(unittest,不访问网络),见下
## 必须遵守的约束
- **不要提交任何真实凭证或个人数据**:`.env`、`config.yaml`、`data/`、session 文件、cookie、真实目录 CID。日志和截图里的这些信息也要打码。
- **不要在代码、测试、文档、Issue 中出现具体的资源频道、Bot 或站点名称**,统一使用 `@example_channel` 这类占位符。
- **不要在代码、测试、文档、Issue 中出现具体的资源频道、Bot 或站点名称**,统一使用 `@example_channel` 这类占位符。唯一的例外是快速开始里维护者列出的推荐来源。
- 涉及 115 写操作(转存、改名、移动、删除)的改动必须保持"先持久化检查点、再调用远端、事后读回核验"的顺序,结果不明时只能核验不能重发,并补充故障注入测试(参考 `tests/test_storage.py`)。
- 测试不得访问网络:使用 `tests/fakes.py` 里的替身、`tests/test_storage.py` 中模拟 115 的 `Cloud`,或 `providers/dryrun.py` 的内存网盘。
+2 -2
View File
@@ -5,7 +5,7 @@
## 1. 项目性质与用途边界
- Reelay 是一个**自托管的个人自动化工具**:替你阅读你自己的 Telegram 账号**本来就能看到**的消息,识别其中的 115 网盘分享链接,并在你确认后把分享转存到**你自己的** 115 账号、整理成媒体库目录结构。
- 本项目**不提供、不存储、不索引、不分发任何影视或其他内容**,不内置、不推荐任何资源来源(频道、Bot、群组或网站)。仓库与文档中出现的来源名称均为虚构占位符。
- 本项目**不提供、不存储、不索引、不分发任何影视或其他内容**,不内置任何资源来源(频道、Bot、群组或网站)。[快速开始](docs/quickstart.md) 中列出的推荐来源由第三方运营,与本项目无关;本项目不对其发布的内容负责,也不保证其合法性与可用性,是否使用由你自行判断。仓库与文档中出现的其他来源名称均为虚构占位符。
- 你应当只用它处理你**有权获取、保存与使用**的内容,例如自己上传的分享、已获授权的内容或公有领域作品。转存、整理、播放什么内容由你自己决定,相关的版权与法律责任由你自行承担。
- 禁止将本项目用于侵犯著作权、传播违法内容、批量爬取或任何违反所在地法律法规的用途。
@@ -33,4 +33,4 @@
---
**English summary.** Reelay is a self-hosted personal automation tool. It reads messages your own Telegram account can already see, detects 115 cloud share links, and—after your approval—saves them into your own 115 account. It does not host, index, or distribute any content and ships with no content sources. Use it only for content you have the right to access and keep; you are solely responsible for what you save. Logging in as a Telegram user (userbot) may trigger rate limits or **account bans**; 115's private web APIs may change at any time and heavy use may get your 115 account **rate-limited, logged out, or restricted**. Automatic approval, quality upgrades, and conflict handling can move, rename, or delete files in your drive. The software is provided "as is" under the MIT License, without warranty of any kind.
**English summary.** Reelay is a self-hosted personal automation tool. It reads messages your own Telegram account can already see, detects 115 cloud share links, and—after your approval—saves them into your own 115 account. It does not host, index, or distribute any content and ships with no content sources. The source suggested in the quick start is run by a third party and is not affiliated with this project; the project is not responsible for what it posts and makes no guarantee about its legality or availability. Use it only for content you have the right to access and keep; you are solely responsible for what you save. Logging in as a Telegram user (userbot) may trigger rate limits or **account bans**; 115's private web APIs may change at any time and heavy use may get your 115 account **rate-limited, logged out, or restricted**. Automatic approval, quality upgrades, and conflict handling can move, rename, or delete files in your drive. The software is provided "as is" under the MIT License, without warranty of any kind.
+1 -1
View File
@@ -254,7 +254,7 @@ AI 负责读消息、给建议,TMDB 与分享里的真实文件负责把关,
> 1.0 正式版,作者日常自用,人工审批的完整流程在真实账号上持续运行。从 1.0 起遵循语义化版本,1.x 内配置与数据格式保持兼容。遇到问题欢迎反馈,尤其是自动审批与多来源的使用情况。支持 macOS / Linux,Windows 请使用 Docker。
> [!WARNING]
> Reelay 不提供、不索引任何内容来源,只处理你自己的账号能看到的消息,转存到你自己的网盘。以个人账号自动化监听 Telegram 可能导致**封号**,频繁调用 115 接口可能触发**风控**。使用前请阅读 [免责声明](DISCLAIMER.md)。
> Reelay 不提供、不索引任何内容,只处理你自己的账号能看到的消息,转存到你自己的网盘。以个人账号自动化监听 Telegram 可能导致**封号**,频繁调用 115 接口可能触发**风控**。使用前请阅读 [免责声明](DISCLAIMER.md)。
## 🤝 参与
+72 -6
View File
@@ -79,15 +79,81 @@ python -m reelay.main
总览页「运行状态」里的「后台 Worker」「Telegram 监听」「115 网盘」都显示正常,就说明已经在运行了。还没登录 Telegram 时主进程也能启动,「Telegram 监听」显示「未登录」,登录后自动接上,不用重启。
## 5. 告诉它存到哪、听谁的
## 5. 设置保存目录
1. **设置 → 基础 → 保存目录**:新增目录别名(如「电影」「剧集」),点「选择 115 目录」从网盘里选中文件夹。别名与默认的一级分类同名时,资源会按「电影 / 国产电影」这样的二级目录自动归类。
2. **设置 → 监听来源 → 添加来源**:填写频道或 Bot 的 `@username`(或数字 ID),确认方式先选「人工确认」。
3. **设置 → 监听来源 → 测试识别**:在来源卡片上点「测试识别」,贴一条这个来源的真实消息,看看识别结果、置信度和决策是否符合预期。
**设置 → 基础 → 保存目录**:新增目录别名(如「电影」「剧集」),点「选择 115 目录」从网盘里选中文件夹。别名与默认的一级分类同名时,资源会按「电影 / 国产电影」这样的二级目录自动归类。
保存后不用重启,约 1 秒后开始监听新来源。
## 6. 添加监听来源
## 6. 处理第一条资源
Reelay 只处理你添加的来源发来的消息。来源可以是资源 Bot、频道或群组。监听用的是你的个人账号,所以先在 Telegram 里关注这个频道、加入群组,或者和 Bot 对话过:账号看不到的消息,Reelay 也收不到。
### 来源怎么填
| 来源 | 填什么 |
| --- | --- |
| 有用户名的 Bot、频道、群组 | `@username`,不区分大小写 |
| 没有用户名的私有频道、群组 | 以 `-100` 开头的数字 ID。在 Telegram 里复制它一条消息的链接,形如 `https://t.me/c/1234567890/42`,在 `c/` 后面那串数字前加上 `-100`,即 `-1001234567890` |
### 添加方式
**用样例消息接入(推荐,需要先配好 AI 服务)**:点「设置 → 监听来源 → 用样例消息接入」。
1. 填来源,贴几条这个来源最近的消息,资源、广告、闲聊都可以,最多 10 条;
2. AI 起草这个来源的设置,包括确认方式、识别方式、保存到、集数依据、必须包含的词与屏蔽关键词。然后用这份设置把样例逐条试跑,列出每条会直接转存、交给你确认,还是忽略;如果这个来源以前批准过的消息会被关键词挡掉,也会标出来;
3. 满意就点「加入来源列表」,再点页面底部的保存。
**手动添加**:点「添加来源」,填来源,确认方式先选「人工确认」,其余沿用「基础」里的默认设置,然后保存。
### 来源卡片上的设置
| 设置 | 说明 |
| --- | --- |
| 确认方式 | 「人工确认」:每条符合要求的资源都等你确认;「AI 处理」:识别与规则都通过就直接转存,拿不准的仍交给你。新来源先用人工确认,确认得够多后再改 |
| 识别方式 | 「AI 识别」(推荐);「规则识别」:不调用 AI,按识别规则提取,适合格式规整的来源 |
| 转存方式 | 「规则 + 订阅放行」(推荐):订阅的剧有新集时直接转存;「规则判断」:只按规则;「AI 按偏好判断」:再按「收藏偏好」筛选 |
| Bot 通知 | 推送审批卡片与入库通知;关掉后在管理台「待审批」处理,出问题的提醒照常发送 |
| 保存到 | 这个来源的资源存到哪个保存目录 |
| 高级设置 | 「消息必须包含」(如 `115`,不含就跳过、不调用 AI)、「包含这些词直接忽略」(如「广告」)、收藏偏好 |
各项的完整说明见 [配置参考](configuration.md#识别与决策defaults--sources)。
### 测试识别与识别规则
- **测试识别**:在卡片上点「测试识别」,贴一条这个来源的真实消息。它会按卡片上当前的设置(包括还没保存的修改)完整识别一遍,显示识别结果、置信度和最后会怎么处理。
- **识别规则**:AI 识别不准,或者不想调用 AI 时,点「设置识别规则」。
1. 准备样例:点「获取最近消息」,用监听账号读取这个来源最近的 10 条消息(需要主进程在运行、Telegram 已连接,读不到时改用已经收到的消息);也可以手动粘贴。
2. 写规则:点「AI 生成规则」起草,或者自己按字段写正则(片名、年份、季、集、分辨率、大小)。
3. 点「试跑」看每条样例的提取结果,满意后点「保存规则」。
用 AI 识别时,规则提取的结果会作为参考一起交给 AI;AI 不可用时按规则识别兜底。正则写法见 [配置参考](configuration.md#识别与决策defaults--sources) 的 `parse_rules`。
### 生效与排查
保存后不用重启,约 1 秒后开始监听。新加的来源从这时起接收新消息,不导入以前的历史消息。
加了来源却一直没有动静时,依次检查:
1. 总览「运行状态」里的「Telegram 监听」是不是「已连接」;
2. 个人账号有没有关注这个频道、加入群组,或者和 Bot 对话过;
3. 来源是否填对:用户名拼写,私有频道要用 `-100` 开头的数字 ID;
4. 消息到了但没被处理时,「任务」里能看到它显示为「已忽略」或「已过滤」,点开看处理轨迹里的原因,比如不含「消息必须包含」里的词。
### 推荐来源
还不知道从哪里开始,可以先试试 **[@QukanMovie](https://t.me/QukanMovie)**:一个持续发布影视资源 115 分享的公开频道,作者日常在用,Reelay 的识别与整理在它的消息上验证得最充分。
1. 在 Telegram 里打开 @QukanMovie,点「加入」关注频道;
2. 回到「设置 → 监听来源」,用「添加来源」填 `@QukanMovie`,也可以用「用样例消息接入」;
3. 作者用的设置可以直接照抄:
- 「消息必须包含」:`115.com`、`115.cn`、`115cdn.com`,每行一个;
- 「包含这些词直接忽略」:`广告`、`招商`;
- 识别方式「AI 识别」,转存方式「规则 + 订阅放行」;
- 确认方式先用「人工确认」,觉得识别靠谱了再改为「AI 处理」。
> [!NOTE]
> 这个频道由第三方运营,与 Reelay 无关。Reelay 不对它发布的内容负责,也不保证它一直可用;是否使用、转存哪些内容由你自行判断,并遵守所在地的法律与版权规定,详见 [免责声明](../DISCLAIMER.md)。
## 7. 处理第一条资源
来源发出新消息后: