diff --git a/README.md b/README.md index 1a8df9a..751b07b 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,12 @@ script/ │ ├── README.md │ └── sntp-rename.js ├── cf_worker/ -│ ├── README.md -│ ├── lsky-telegram-worker.js -│ └── tg-bot.js +│ ├── lskypro/ +│ │ ├── README.md +│ │ └── lsky-telegram-worker.js +│ └── tg-bot/ +│ ├── README.md +│ └── tg-bot.js ├── LICENSE └── README.md ``` @@ -26,8 +29,8 @@ script/ | --- | --- | --- | --- | | `homebrew/` | `brew-upgrade-manager.sh` | 自动更新 Homebrew、升级 Formula/Cask、清理缓存 | macOS、Bash、Homebrew | | `substore/` | `sntp-rename.js` | 守候网络节点命名专用,在 Sub-Store 代理节点名称中注入线路标签 | Sub-Store 脚本处理器 | -| `cf_worker/` | `lsky-telegram-worker.js` | Telegram 收图后上传到 Lsky Pro,并返回 Markdown 图片链接代码块 | Cloudflare Workers、D1、Telegram Bot、Lsky Pro | -| `cf_worker/` | `tg-bot.js` | 基于 Cloudflare Workers 的 Telegram 私聊转发与管理后台 | Cloudflare Workers、D1、Telegram Bot | +| `cf_worker/lskypro/` | `lsky-telegram-worker.js` | Telegram 收图后上传到 Lsky Pro,并返回 Markdown 图片链接代码块 | Cloudflare Workers、D1、Telegram Bot、Lsky Pro | +| `cf_worker/tg-bot/` | `tg-bot.js` | 基于 Cloudflare Workers 的 Telegram 私聊转发与管理后台 | Cloudflare Workers、D1、Telegram Bot | ## 快速开始 @@ -56,12 +59,12 @@ HB_TERMINAL_WIDTH=130 ./brew-upgrade-manager.sh ### Cloudflare Worker 脚本 -`cf_worker/` 目录包含两个 Worker: +`cf_worker/` 目录包含两个独立 Worker: -- [cf_worker/lsky-telegram-worker.js](cf_worker/lsky-telegram-worker.js):接收 Telegram 图片,上传到 Lsky Pro,返回 Markdown 图片链接代码块。默认单文件上限 `500.00 MB`,上传队列最多 `500` 张。 -- [cf_worker/tg-bot.js](cf_worker/tg-bot.js):Telegram 私聊转发与管理后台,绑定 Telegram Bot Token、管理员 ID、管理群 ID 和 D1 数据库。 +- [cf_worker/lskypro/lsky-telegram-worker.js](cf_worker/lskypro/lsky-telegram-worker.js):接收 Telegram 图片,上传到 Lsky Pro,返回 Markdown 图片链接代码块。默认单文件上限 `500.00 MB`,上传队列最多 `500` 张。 +- [cf_worker/tg-bot/tg-bot.js](cf_worker/tg-bot/tg-bot.js):Telegram 私聊转发与管理后台,绑定 Telegram Bot Token、管理员 ID、管理群 ID 和 D1 数据库。 -详细部署说明见 [cf_worker/README.md](cf_worker/README.md)。 +详细部署说明分别见 [cf_worker/lskypro/README.md](cf_worker/lskypro/README.md) 和 [cf_worker/tg-bot/README.md](cf_worker/tg-bot/README.md)。 ## 安全提示 diff --git a/cf_worker/lskypro/README.md b/cf_worker/lskypro/README.md new file mode 100644 index 0000000..317a977 --- /dev/null +++ b/cf_worker/lskypro/README.md @@ -0,0 +1,50 @@ +# Lsky Telegram Upload Worker + +`lsky-telegram-worker.js` 用于把 Telegram 私聊发送的图片或图片文件上传到 Lsky Pro。上传成功后,Bot 会回复 Markdown 图片链接,并使用 Telegram HTML `
` 代码块渲染,便于 Android 客户端点击复制。 + +## 功能 + +- 支持 Telegram `photo` 和图片类 `document`。 +- 支持 Telegram `media_group_id` 相册收集后批量上传。 +- 默认单文件大小限制为 `500.00 MB`,可用 `MAX_FILE_MB` 覆盖。 +- 默认上传队列最多收 `500` 张,可用 `MAX_UPLOAD_QUEUE_IMAGES` 覆盖。 +- 返回格式为 ``,并关闭网页预览。 +- 通过 `ALLOWED_TELEGRAM_USER_IDS` 限制可用用户。 + +## 必需绑定和环境变量 + +| 名称 | 说明 | +| --- | --- | +| `DB` | Cloudflare D1 数据库绑定名,用于暂存相册队列 | +| `TELEGRAM_BOT_TOKEN` | Telegram Bot Token | +| `TELEGRAM_WEBHOOK_SECRET` | Telegram Webhook secret token,同时用于 `/init` 初始化鉴权 | +| `ALLOWED_TELEGRAM_USER_IDS` | 允许使用的 Telegram user id,多个用英文逗号分隔 | +| `LSKY_API_URL` | Lsky Pro 上传 API 地址 | +| `LSKY_TOKEN` | Lsky Pro API token | + +## 可选环境变量 + +| 名称 | 默认值 | 说明 | +| --- | --- | --- | +| `MAX_FILE_MB` | `500.00` | 单个 Telegram 图片/文件大小上限,单位 MB | +| `MAX_UPLOAD_QUEUE_IMAGES` | `500` | 单个上传队列最多暂存图片数量 | +| `ALBUM_WAIT_SECONDS` | `5` | 相册收集等待秒数 | +| `LSKY_PERMISSION` | `1` | 传给 Lsky Pro 的 `permission` | +| `LSKY_STRATEGY_ID` | 空 | 传给 Lsky Pro 的 `strategy_id` | + +## 部署流程 + +1. 创建 Telegram Bot,拿到 `TELEGRAM_BOT_TOKEN`。 +2. 创建 Cloudflare D1 数据库,并在 Worker 中绑定为 `DB`。 +3. 创建 Worker,把 [lsky-telegram-worker.js](lsky-telegram-worker.js) 作为 Worker 代码。 +4. 配置上方环境变量。 +5. 访问 `https:///init?secret= ` 初始化 D1 表。 +6. 设置 Telegram Webhook: + +```bash +curl -X POST "https://api.telegram.org/bot /setWebhook" \ + -d "url= /webhook" \ + -d "secret_token= " +``` + +7. 访问 Worker 根路径,若返回 `Lsky Telegram Worker OK - code-block-max500mb-queue500-2026-05-27`,说明 Worker 基本可用。 diff --git a/cf_worker/lsky-telegram-worker.js b/cf_worker/lskypro/lsky-telegram-worker.js similarity index 100% rename from cf_worker/lsky-telegram-worker.js rename to cf_worker/lskypro/lsky-telegram-worker.js diff --git a/cf_worker/README.md b/cf_worker/tg-bot/README.md similarity index 84% rename from cf_worker/README.md rename to cf_worker/tg-bot/README.md index a03c7f4..2c4f9d1 100644 --- a/cf_worker/README.md +++ b/cf_worker/tg-bot/README.md @@ -1,64 +1,4 @@ -# Cloudflare Worker Scripts - -这个目录保存 Cloudflare Workers 相关脚本: - -| 脚本 | 用途 | -| --- | --- | -| `lsky-telegram-worker.js` | Telegram 收图后上传到 Lsky Pro,并返回 Markdown 图片链接代码块 | -| `tg-bot.js` | Telegram 双向私聊中继 Bot,包含管理面板、验证、过滤、封禁、备份等功能 | - -## Lsky Telegram Upload Worker - -`lsky-telegram-worker.js` 用于把 Telegram 私聊发送的图片或图片文件上传到 Lsky Pro。上传成功后,Bot 会回复 Markdown 图片链接,并使用 Telegram HTML ` ` 代码块渲染,便于 Android 客户端点击复制。 - -### 功能 - -- 支持 Telegram `photo` 和图片类 `document`。 -- 支持 Telegram `media_group_id` 相册收集后批量上传。 -- 默认单文件大小限制为 `500.00 MB`,可用 `MAX_FILE_MB` 覆盖。 -- 默认上传队列最多收 `500` 张,可用 `MAX_UPLOAD_QUEUE_IMAGES` 覆盖。 -- 返回格式为 ``,并关闭网页预览。 -- 通过 `ALLOWED_TELEGRAM_USER_IDS` 限制可用用户。 - -### 必需绑定和环境变量 - -| 名称 | 说明 | -| --- | --- | -| `DB` | Cloudflare D1 数据库绑定名,用于暂存相册队列 | -| `TELEGRAM_BOT_TOKEN` | Telegram Bot Token | -| `TELEGRAM_WEBHOOK_SECRET` | Telegram Webhook secret token,同时用于 `/init` 初始化鉴权 | -| `ALLOWED_TELEGRAM_USER_IDS` | 允许使用的 Telegram user id,多个用英文逗号分隔 | -| `LSKY_API_URL` | Lsky Pro 上传 API 地址 | -| `LSKY_TOKEN` | Lsky Pro API token | - -### 可选环境变量 - -| 名称 | 默认值 | 说明 | -| --- | --- | --- | -| `MAX_FILE_MB` | `500.00` | 单个 Telegram 图片/文件大小上限,单位 MB | -| `MAX_UPLOAD_QUEUE_IMAGES` | `500` | 单个上传队列最多暂存图片数量 | -| `ALBUM_WAIT_SECONDS` | `5` | 相册收集等待秒数 | -| `LSKY_PERMISSION` | `1` | 传给 Lsky Pro 的 `permission` | -| `LSKY_STRATEGY_ID` | 空 | 传给 Lsky Pro 的 `strategy_id` | - -### 部署流程 - -1. 创建 Telegram Bot,拿到 `TELEGRAM_BOT_TOKEN`。 -2. 创建 Cloudflare D1 数据库,并在 Worker 中绑定为 `DB`。 -3. 创建 Worker,把 [lsky-telegram-worker.js](lsky-telegram-worker.js) 作为 Worker 代码。 -4. 配置上方环境变量。 -5. 访问 `https:///init?secret= ` 初始化 D1 表。 -6. 设置 Telegram Webhook: - -```bash -curl -X POST "https://api.telegram.org/bot /setWebhook" \ - -d "url= /webhook" \ - -d "secret_token= " -``` - -7. 访问 Worker 根路径,若返回 `Lsky Telegram Worker OK - code-block-max500mb-queue500-2026-05-27`,说明 Worker 基本可用。 - -## Telegram Bot Worker +# Telegram Bot Worker `tg-bot.js` 是一个部署在 Cloudflare Workers 上的 Telegram 双向私聊中继 Bot(版本 v3.68)。它会把用户私聊消息转发到管理员论坛群的独立 topic 中,管理员在对应 topic 内回复即可把消息发回用户,同时提供验证、过滤、封禁、备注、自动回复、备份和 Telegram 内联管理面板。 diff --git a/cf_worker/tg-bot.js b/cf_worker/tg-bot/tg-bot.js similarity index 100% rename from cf_worker/tg-bot.js rename to cf_worker/tg-bot/tg-bot.js