یک ابزار خودکارسازی برای ادمینهای کانال تلگرام؛ مبتنی بر کتابخانه Pyrogram (MTProto) برای رصد کانالهای دیگر، فیلتر مطالب با کلیدواژه، بازنویسی متنها با هوش مصنوعی و انتشار مدیریتشده در کانال.
Made ❤️ by Mohammad (@llllxyz)
ادمین کانال تلگرام بودن کار زمانبریه. روزانه باید دهها کانال خبری و تخصصی رو چک کنی، پستهای خوب رو پیدا کنی، لینکها و تبلیغات کانالهای دیگه رو حذف کنی، متن رو تمیز یا بازنویسی کنی و در نهایت توی کانال خودت منتشر کنی.
از طرفی، رباتهای معمولی تلگرام (Bot API) یک محدودیت بزرگ دارن: برای اینکه بتونن پستهای یک کانال رو بخونن، حتماً باید ادمین اون کانال باشن. بنابراین نمیتونید با یک ربات معمولی، کانالهای عمومی اخبار یا رقبا رو مانیتور کنید.
این پروژه با استفاده از کلاینت MTProto (مانند یک اکانت کاربری واقعی) کار میکنه. نیازی نیست ادمین کانالهای مبدا باشید؛ کافیه کانال عمومی باشه.
روال کار برنامه به این صورته:
- کانالهایی که بهش معرفی کردید رو بهصورت زنده رصد میکنه.
- پستهای جدید رو با لیست کلیدواژههای شما تطبیق میده (با پشتیبانی از حروف فارسی/عربی و نیمفاصله).
- اگر پستی مرتبط بود، متن اون رو به مدل زبانی (OpenAI / DeepSeek) میفرسته تا بازنویسی و خلاصه بشه و هشتگ مناسب بخوره.
- اگر کلید هوش مصنوعی ست نشده باشه یا اینترنت سرور AI قطع بشه، برنامه متوقف نمیشه؛ با یک اسکریپت داخلی (Rule-Based) لینکها و آیدیهای رقیب رو پاک میکنه و امضای کانال شما رو اضافه میکنه.
- در نهایت، پیشنویس مطلب رو همراه با سه دکمهٔ شیشهای برای شما میفرسته:
[✅ انتشار در کانال][❌ رد کردن][🔄 بازنویسی مجدد]
[Public Source Channels] --(New Post)--> [Pyrogram MTProto Client]
|
v
[Keyword Filter & Normalizer]
|
v
[Rewrite Engine: LLM / Regex]
|
v
[SQLite Draft Storage]
|
+------------------------+------------------------+
| |
(mode = review) (mode = auto)
| |
v v
[Admin Review via Inline Buttons] [Target Telegram Channel]
- پایتون 3.12 یا بالاتر (یا Docker)
- مشخصات API تلگرام (
API_IDوAPI_HASH) از سایت my.telegram.org - یک اکانت تلگرام برای اتصال برنامه
پروژه رو دانلود کنید و فایل تنظیمات رو بسازید:
git clone https://github.com/mmdverse/telegram-channel-curator.git
cd telegram-channel-curator
cp .env.example .envفایل .env رو باز کنید و متغیرها رو تنظیم کنید:
TELEGRAM_API_ID=12345678
TELEGRAM_API_HASH=your_telegram_api_hash
TARGET_CHANNEL=@MyTechNewsChannel
ADMIN_USER_ID=123456789
PUBLISHING_MODE=review
OPENAI_API_KEY=sk-your_api_key_here
LLM_MODEL_NAME=gpt-4o-mini
CHANNEL_SIGNATURE=@MyTechNewsChannel# نصب وابستگیها
make install
# اجرای برنامه
make runدر بار اول اجرا، تلگرام یک کد تایید براتون میفرسته. کد رو در ترمینال وارد کنید تا نشست (.session) ساخته بشه.
docker-compose up -d --buildتمام این دستورات رو میتونید از اکانت خودتون داخل چت با ربات یا Saved Messages ارسال کنید:
| دستور | توضیح | مثال |
|---|---|---|
/add_source <@username> |
اضافه کردن کانال جدید برای مانیتورینگ | /add_source @TechNewsFA |
/remove_source <@username> |
حذف کانال از لیست مانیتورینگ | /remove_source @TechNewsFA |
/list_sources |
مشاهده لیست کانالهای فعال | /list_sources |
/add_keyword <word> |
اضافه کردن کلمه کلیدی برای فیلتر | /add_keyword پایتون |
/remove_keyword <word> |
حذف کلمه کلیدی | /remove_keyword پایتون |
/list_keywords |
لیست کلیدواژهها (اگر خالی باشه همه پستها جمعآوری میشن) | /list_keywords |
/mode <auto/review> |
تغییر حالت بین انتشار مستقیم و تایید با دکمه شیشهای | /mode review |
/set_prompt <text> |
تغییر دستورالعمل بازنویسی هوش مصنوعی | /set_prompt متن رو خودمانی بنویس |
/stats |
مشاهده آمار پستهای بررسیشده، منتشرشده و ردشده | /stats |
برای اجرای تستهای خودکار برنامه (کدنویسی، یکسانسازی حروف فارسی، پارسر و ماژول بازنویسی):
pytest -vاین پروژه آزاد و متنباز است و برای استفاده در پروژههای شخصی یا تجاری محدودیتی ندارد.
- Made ❤️ by Mohammad
- Telegram:
@llllxyz