ربات فوروارد پیام از کانال تلگرام به کانال بله روی Cloudflare Workers.
تلگرام → Worker (Cloudflare) → بله
↓
D1 Database (ذخیره last_update_id)
- فوروارد خودکار پیامها هر 1 دقیقه (Cron)
- پشتیبانی از متن، عکس، ویدیو، صدا، فایل، GIF
- حفظ فرمتهای متنی (بولد، ایتالیک، لینک و...)
- ارسال فایلهای کوچکتر از 20MB مستقیماً باuffer
- ارسال فایلهای بزرگتر از 20MB از طریق هاست رایگان (0x0.st)
- پشتیبانی از کانالهای خصوصی و عمومی
- ذخیره وضعیت در D1 (عدم تکرار پیامها)
T2B_ForwarderBot/
├── index.js # کد اصلی Worker
├── wrangler.toml # تنظیمات Cloudflare Worker
├── wrangler-example.toml # الگوی تنظیمات (بدون توکنها)
└── README.md
- اکانت Cloudflare
- توکن بات تلگرام (از
@BotFather) - توکن بات بله
- باتها باید ادمین کانالهای مربوطه باشن
npm install -g wranglerwrangler logincp wrangler-example.toml wrangler.tomlمقادیر زیر رو با اطلاعات خودت عوض کن:
| متغیر | توضیح |
|---|---|
account_id |
ID اکانت Cloudflare |
database_id |
ID دیتابیس D1 |
TELEGRAM_BOT_TOKEN |
توکن بات تلگرام |
BALE_BOT_TOKEN |
توکن بات بله |
TELEGRAM_CHANNEL_ID |
ID کانال مبدأ (مثلاً -1001234567890) |
BALE_CHANNEL_ID |
نام کانال مقصد (مثلاً @channel_name) |
wrangler d1 create forwarder-dbID ساخته شده رو در wrangler.toml قرار بدی.
wrangler d1 execute forwarder-db --remote --command "CREATE TABLE IF NOT EXISTS settings (key TEXT PRIMARY KEY, value TEXT NOT NULL);"wrangler deploy| آدرس | عملکرد |
|---|---|
GET /test |
اجرای دستی فوروارد پیامها |
GET /reset |
صفر کردن update_id (برای دریافت پیامهای قبلی) |
Worker هر 1 دقیقه خودکار اجرا میشه و پیامهای جدید رو فوروارد میکنه.
| نوع پیام | وضعیت |
|---|---|
| متن ساده | مستقیم |
| عکس | مستقیم |
| ویدیو | مستقیم |
| صدا | مستقیم |
| فایل | مستقیم |
| GIF | مستقیم |
| استیکر | به صورت فایل |
| ویس | به صورت فایل |
| video_note | به صورت فایل |
حجم < 20MB → دانلود از تلگرام → ارسال مستقیم به بله
حجم >= 20MB → دانلود از تلگرام → آپلود به 0x0.st → ارسال لینک به بله
خطا در آپلود → ارسال لینک موقت تلگرام (1 ساعته)
- مطمئن شو بات ادمین کانال تلگرامه
- دسترسی Post Messages فعال باشه
GET /resetبزنید تا update_id صفر بشهGET /testبزنید تا تست کنید
توکن بات رو چک کنید. توکن جدید از @BotFather بگیرید.
برای کانالهای خصوصی، TELEGRAM_CHANNEL_ID باید عددی باشه (مثلاً -1001234567890).
- Cloudflare Workers: رایگان (100,000 درخواست روزانه)
- D1 Database: رایگان (100,000 خواندن/نوشتن روزانه)
- 0x0.st: رایگان (نیاز به ثبتنام نداره)
MIT