Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Channel Curator

یک ابزار خودکارسازی برای ادمین‌های کانال تلگرام؛ مبتنی بر کتابخانه Pyrogram (MTProto) برای رصد کانال‌های دیگر، فیلتر مطالب با کلیدواژه، بازنویسی متن‌ها با هوش مصنوعی و انتشار مدیریت‌شده در کانال.

Made ❤️ by Mohammad (@llllxyz)


مشکل چی بود؟

ادمین کانال تلگرام بودن کار زمان‌بریه. روزانه باید ده‌ها کانال خبری و تخصصی رو چک کنی، پست‌های خوب رو پیدا کنی، لینک‌ها و تبلیغات کانال‌های دیگه رو حذف کنی، متن رو تمیز یا بازنویسی کنی و در نهایت توی کانال خودت منتشر کنی.

از طرفی، ربات‌های معمولی تلگرام (Bot API) یک محدودیت بزرگ دارن: برای اینکه بتونن پست‌های یک کانال رو بخونن، حتماً باید ادمین اون کانال باشن. بنابراین نمی‌تونید با یک ربات معمولی، کانال‌های عمومی اخبار یا رقبا رو مانیتور کنید.

راهکار ما

این پروژه با استفاده از کلاینت MTProto (مانند یک اکانت کاربری واقعی) کار می‌کنه. نیازی نیست ادمین کانال‌های مبدا باشید؛ کافیه کانال عمومی باشه.

روال کار برنامه به این صورته:

  1. کانال‌هایی که بهش معرفی کردید رو به‌صورت زنده رصد می‌کنه.
  2. پست‌های جدید رو با لیست کلیدواژه‌های شما تطبیق می‌ده (با پشتیبانی از حروف فارسی/عربی و نیم‌فاصله).
  3. اگر پستی مرتبط بود، متن اون رو به مدل زبانی (OpenAI / DeepSeek) می‌فرسته تا بازنویسی و خلاصه بشه و هشتگ مناسب بخوره.
  4. اگر کلید هوش مصنوعی ست نشده باشه یا اینترنت سرور AI قطع بشه، برنامه متوقف نمی‌شه؛ با یک اسکریپت داخلی (Rule-Based) لینک‌ها و آیدی‌های رقیب رو پاک می‌کنه و امضای کانال شما رو اضافه می‌کنه.
  5. در نهایت، پیش‌نویس مطلب رو همراه با سه دکمهٔ شیشه‌ای برای شما می‌فرسته:
    • [✅ انتشار در کانال]
    • [❌ رد کردن]
    • [🔄 بازنویسی مجدد]

معماری سیستم

[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)

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

About

📡 Telegram Channel Auto-Curator & AI Rewriter - Smart aggregator that monitors source channels, filters by keyword, rewrites using LLMs/regex, & publishes with admin inline review. | ربات ادمین و بازنویس کانال تلگرام | Made ❤️ by Mohammad (@llllxyz)

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages