⚡
چالشها
- نیاز به فوروارد خودکار پیامها از چندین گروه مبدا به چندین گروه مقصد
- دریافت خودکار chat_id گروهها از تلگرام بدون دخالت دستی
- مدیریت محدودیتهای ارسال پیام تلگرام و جلوگیری از مسدود شدن بات
- فیلتر محتوای نامناسب با استفاده از لیست کلمات ممنوعه
- افزودن خودکار امضای مدیر به ابتدای هر پیام
- پشتیبانی از انواع محتوا (متن، عکس، فایل)
- مدیریت فعال/غیرفعال کردن گروههای مقصد به صورت پویا
- یکپارچهسازی بات aiogram با جنگو در یک پروژه واحد
- محدودیت تعداد گروههای مبدا برای جلوگیری از سوء استفاده
💡
راهحلها
- استفاده از aiogram برای مدیریت بات به صورت async
- اجرای بات در thread جداگانه با AppsConfig.ready()
- پیادهسازی متد resolve_chat_id برای دریافت خودکار chat_id از API تلگرام
- فیلتر کلمات ممنوعه قبل از فوروارد با مدل Forbidden_words
- افزودن خودکار امضا با متد replace_or_add_id
- پشتیبانی از انواع محتوا با تشخیص نوع پیام (text/photo/document)
- پیادهسازی toggle برای فعال/غیرفعال کردن گروههای مقصد
- استفاده از socks5 proxy برای دور زدن محدودیتها
- محدودیت ۱۰ گروه مبدا با شرط chanels.count() < 10
- استفاده از sync_to_async برای تعامل امن با دیتابیس جنگو
📚
دستاوردها
- سامانه کامل فوروارد خودکار پیام تلگرام
- پشتیبانی از چندین گروه مبدا و مقصد
- فیلتر هوشمند کلمات ممنوعه
- افزودن خودکار امضای مدیر
- پشتیبانی از متن، عکس و فایل
- مدیریت پویا با فعال/غیرفعال کردن
- پنل مدیریتی امن
- یکپارچهسازی موفق بات aiogram با جنگو
- پشتیبانی از پروکسی SOCKS5
🔧
نکات فنی برجسته
- Django 5.2.6 و Python 3
- پایگاه داده MySQL با pymysql
- aiogram 3.28 برای بات تلگرام (async)
- Django REST Framework 3.16 برای API
- django-filter برای فیلتر دادهها
- pyotp برای احراز هویت دو مرحلهای
- persiantools برای تاریخ شمسی
- اجرای بات در thread جداگانه
- دریافت خودکار chat_id با API تلگرام
- پشتیبانی از پروکسی SOCKS5 (aiohttp_socks)
- sync_to_async برای تعامل امن با ORM
- مدیریت کلمات ممنوعه
- افزودن خودکار امضا به پیامها
- پشتیبانی از متن، عکس و document
🏗️
معماری پروژه
پروژه فوروارد از گروه بر پایه معماری MVT (Model-View-Template) جنگو ساخته شده و از دو اپلیکیشن اصلی تشکیل شده است:
۱. crm: مسئول مدیریت لینکها، کاربران و پنل ادمین
- مدل CustomUser سفارشی
- مدل Target_chanel_link برای گروههای مقصد
- مدل Origin_chanel_link برای گروههای مبدا
- مدل Forbidden_words برای کلمات ممنوعه
- مدل My_telegram_id برای آیدی مدیر
- ویوهای group_links, origin_group, forbidden_words, set_my_telegram_id
۲. telegram_bot: مسئول اجرای بات تلگرام
- فایل bot.py با aiogram Dispatcher
- AppsConfig.ready() برای اجرای بات در thread
- هندلر forward_handler برای پیامهای گروه
- هندلر channel_post_handler برای پیامهای کانال
- متد forward_to_targets برای فوروارد به گروههای مقصد
- مدل BroadcastMessage و TrainingVideo
پروژه در حالت DEBUG اجرا میشود و از SQLite برای توسعه و MySQL برای تولید استفاده میکند.
📐
مقیاس پروژه
- ۲ اپلیکیشن اصلی (crm, telegram_bot)
- ۷ مدل دادهای اصلی
- سیستم فوروارد خودکار پیام
- پنل ادمین اختصاصی
- فیلتر کلمات ممنوعه
- مدیریت لینک گروههای مبدا و مقصد
- پشتیبانی از پروکسی SOCKS5
- CustomUser سفارشی
- یکپارچهسازی async/threading
- محدودیت ۱۰ گروه مبدا