⚡
التحديات
- الحاجة إلى إعادة توجيه الرسائل تلقائيًا من مجموعات مصدر متعددة إلى مجموعات وجهة متعددة
- استرجاع معرفات الدردشة للمجموعات تلقائيًا من تيليجرام دون تدخل يدوي
- إدارة حدود معدل إرسال الرسائل في تيليجرام ومنع حظر البوت
- تصفية المحتوى غير المناسب باستخدام قائمة الكلمات المحظورة
- إضافة توقيع المدير تلقائيًا إلى بداية كل رسالة
- دعم أنواع محتوى متنوعة (نص، صورة، ملف)
- إدارة تمكين/تعطيل مجموعات الوجهة بشكل ديناميكي
- دمج بوت aiogram مع دجانغو في مشروع واحد
- تحديد عدد المجموعات المصدر لمنع إساءة الاستخدام
💡
الحلول
- استخدام aiogram لإدارة البوت بشكل غير متزامن
- تشغيل البوت في خيط منفصل مع AppsConfig.ready()
- تنفيذ طريقة resolve_chat_id للاسترجاع التلقائي لمعرف الدردشة من واجهة تيليجرام
- تصفية الكلمات المحظورة قبل إعادة التوجيه باستخدام نموذج Forbidden_words
- إضافة التوقيع تلقائيًا باستخدام طريقة replace_or_add_id
- دعم أنواع محتوى متنوعة عن طريق اكتشاف نوع الرسالة (نص/صورة/مستند)
- تنفيذ toggle لتمكين/تعطيل مجموعات الوجهة
- استخدام بروكسي socks5 لتجاوز القيود
- حد 10 مجموعات مصدر مع شرط chanels.count() < 10
- استخدام sync_to_async للتفاعل الآمن مع ORM في دجانغو
📚
الإنجازات
- نظام كامل لإعادة توجيه رسائل تيليجرام تلقائيًا
- دعم مجموعات مصدر ووجهة متعددة
- تصفية ذكية للكلمات المحظورة
- إضافة توقيع المدير تلقائيًا
- دعم النص والصورة والملف
- إدارة ديناميكية مع تمكين/تعطيل
- لوحة إدارة آمنة
- تكامل ناجح لبوت aiogram مع دجانغو
- دعم بروكسي SOCKS5
🔧
النقاط الفنية البارزة
- Django 5.2.6 و Python 3
- قاعدة بيانات MySQL مع pymysql
- aiogram 3.28 لبوت تيليجرام (غير متزامن)
- Django REST Framework 3.16 لواجهة API
- django-filter لتصفية البيانات
- pyotp للمصادقة ثنائية العوامل
- persiantools للتاريخ الجلالي
- تشغيل البوت في خيط منفصل
- استرجاع تلقائي لمعرف الدردشة مع واجهة تيليجرام
- دعم بروكسي SOCKS5 (aiohttp_socks)
- sync_to_async للتفاعل الآمن مع ORM
- إدارة الكلمات المحظورة
- إضافة التوقيع تلقائيًا إلى الرسائل
- دعم النص والصورة والمستند
🏗️
الهندسة المعمارية
تم بناء فوروارد من المجموعة على معمارية MVT (Model-View-Template) في دجانغو ويتكون من تطبيقين رئيسيين:
1. crm: مسؤول عن إدارة الروابط والمستخدمين ولوحة الإدارة
- نموذج CustomUser مخصص
- نموذج Target_chanel_link لمجموعات الوجهة
- نموذج Origin_chanel_link لمجموعات المصدر
- نموذج Forbidden_words للكلمات المحظورة
- نموذج My_telegram_id لمعرف المدير
- عروض group_links و origin_group و forbidden_words و set_my_telegram_id
2. telegram_bot: مسؤول عن تشغيل بوت تيليجرام
- ملف bot.py مع aiogram Dispatcher
- AppsConfig.ready() لتشغيل البوت في خيط
- معالج forward_handler لرسائل المجموعة
- معالج channel_post_handler لرسائل القناة
- طريقة forward_to_targets لإعادة التوجيه إلى مجموعات الوجهة
- نموذج BroadcastMessage و TrainingVideo
يعمل المشروع في وضع DEBUG ويستخدم SQLite للتطوير و MySQL للإنتاج.
📐
نطاق المشروع
- تطبيقان رئيسيان (crm, telegram_bot)
- 7 نماذج بيانات رئيسية
- نظام إعادة توجيه تلقائي للرسائل
- لوحة إدارة مخصصة
- تصفية الكلمات المحظورة
- إدارة روابط مجموعات المصدر والوجهة
- دعم بروكسي SOCKS5
- CustomUser مخصص
- تكامل async/threading
- حد 10 مجموعات مصدر