⚡
التحديات
- الحاجة إلى بث الرسائل إلى العديد من مستخدمي تيليجرام دون حظر البوت
- إدارة حدود معدل إرسال الرسائل في تيليجرام
- تشغيل بوت تيليجرام وخادم دجانغو في وقت واحد في مشروع واحد
- حفظ معلومات المستخدمين تلقائيًا عند بدء البوت
- الحاجة إلى مصادقة ثنائية العوامل للوحة الإدارة
- إدارة روابط القنوات والمجموعات بشكل ديناميكي
- إرسال الصور والنصوص في وقت واحد إلى المستخدمين والمجموعات
- دمج نظام CRM مع بوت تيليجرام
💡
الحلول
- استخدام aiogram لإدارة بوت تيليجرام بشكل غير متزامن
- تشغيل البوت في خيط منفصل مع AppsConfig.ready()
- حفظ chat_id و username في نموذج Users_link باستخدام get_or_create
- تنفيذ الإرسال في الخلفية باستخدام asyncio و threading
- استخدام فواصل زمنية 5 ثوانٍ بين الإرسالات لتجنب حدود المعدل
- تنفيذ 2FA باستخدام pyotp لتعزيز الأمان
- استخدام CustomUser مخصص لتخزين معلومات تيليجرام
- تنفيذ لوحة الإدارة بنماذج HTML بسيطة
- استخدام persiantools لعرض التاريخ الجلالي
📚
الإنجازات
- نظام كامل لإدارة رسائل تيليجرام
- البث إلى المستخدمين والمجموعات مع إدارة حدود المعدل
- حفظ المستخدمين تلقائيًا عند أول تفاعل مع البوت
- لوحة إدارة آمنة مع 2FA
- تكامل ناجح لبوت تيليجرام مع دجانغو
- دعم إرسال الصور والنصوص
- نظام CRM كامل لإدارة المستخدمين
🔧
النقاط الفنية البارزة
- Django 5.2.6 و Python 3
- قاعدة بيانات MySQL مع pymysql
- aiogram 3.28 لبوت تيليجرام (غير متزامن)
- python-telegram-bot 22.3 كاحتياطي
- Django REST Framework 3.16 لواجهة API
- django-filter لتصفية البيانات
- django-environ و python-decouple لإدارة الإعدادات
- pyotp للمصادقة ثنائية العوامل
- persiantools للتاريخ الجلالي
- تشغيل البوت في خيط منفصل مع AppsConfig
- إدارة حدود معدل تيليجرام بفواصل 5 ثوانٍ
- CustomUser مخصص لتخزين telegram_id و chat_id
- تنفيذ 2FA باستخدام TOTP
🏗️
الهندسة المعمارية
تم بناء فوروارد بوت على معمارية MVT (Model-View-Template) في دجانغو ويتكون من تطبيقين رئيسيين:
1. crm: مسؤول عن إدارة المستخدمين والروابط ولوحة الإدارة
- نموذج CustomUser مخصص مع telegram_id و telegram_username و phone_number
- نموذج Chanel_link لتخزين روابط القنوات
- نموذج Users_link لتخزين chat_id المستخدمين
- عروض login_view و sendmassage و sendgroupmessage
- عروض group_links و users_link لإدارة الروابط
2. telegram_bot: مسؤول عن تشغيل بوت تيليجرام
- ملف bot.py مع aiogram Dispatcher
- AppsConfig.ready() لتشغيل البوت في خيط منفصل
- نموذج BroadcastMessage لتخزين الرسائل الجماعية
- نموذج TrainingVideo لمقاطع الفيديو التعليمية
- معالج /start لحفظ المستخدمين تلقائيًا
يعمل المشروع في وضع DEBUG ويستخدم SQLite للتطوير و MySQL للإنتاج.
📐
نطاق المشروع
- تطبيقان رئيسيان (crm, telegram_bot)
- 5 نماذج بيانات رئيسية
- نظام بوت تيليجرام مع aiogram
- لوحة إدارة مخصصة
- نظام 2FA
- البث إلى المستخدمين والمجموعات
- إدارة روابط القنوات
- CustomUser مخصص
- تكامل async/threading