بوت ديسكورد THN
خلال فترة الجامعة، وحتى الآن، أنا ومعظم أصدقائي نستخدم ديسكورد كواحد من منصات المراسلة الاجتماعية الرئيسية لدينا. في ذلك الوقت، وحتى الآن، كنت أرغب في أن أكون على اطلاع بأخبار الأمن السيبراني. لذلك فكرت، كمشروع ممتع، أنني وصديقي سنقوم بإنشاء بوت ديسكورد يقوم بإعادة نشر أخبار الأمن السيبراني من The Hacker News إلى خادم ديسكورد. قدمت الفكرة لصديقي وأحبها، لذا بدأنا في تطويرها.
The Hacker News (THN) هو موقع أخبار الأمن السيبراني. الآن، THN ليس Hacker News. كان هناك بعض الجدل حول كيف أن اسم “The Hacker News” مشابه جدًا لـ “Hacker News” وهو موقع أخبار اجتماعية شهير وذو سمعة طيبة يركز على ريادة الأعمال التقنية. لكن، كشخص يستخدم The Hacker News طوال الوقت، أعتقد أن The Hacker News هو مصدر جيد للحصول على أخبار الأمن السيبراني.
حسنًا، أثناء العمل على هذا المشروع، كانت إحدى التحديات التي واجهتها هي العثور على طريقة لاستخراج الأخبار من THN. الخيارات المتاحة كانت إما استخدام واجهة برمجة تطبيقات تويتر أو استخراج البيانات من THN. قضيت بعض الوقت في محاولة جعل واجهة برمجة تطبيقات تويتر تعمل لكنني استسلمت لأن تويتر جعل من الصعب جدًا إعداد واستخدام واجهته. لذا لجأت إلى استخراج البيانات من THN بدلاً من ذلك. نظرًا لأن قاعدة الشيفرة كانت ستكتب بلغة بايثون، استخدمت مكتبات requests وbeautifulsoup4 للقيام بعملية استخراج البيانات.
مع عمل المستخرج، كانت الخطوة التالية التي واجهناها هي بوت ديسكورد. إنشاء ونشر بوت ديسكورد بسيط جدًا. لذا حصلنا بسرعة على البوت يعمل في أقل من يوم. كما قمنا بإعداد خادم ديسكورد خلال تلك الفترة الزمنية أيضًا.
أحد الميزات التي أضفناها كانت ميزة “الفلاتر”. كانت هذه الميزة تقوم بفرز مقالات THN حسب ما إذا كانت “أخبار آبل”، “أخبار جوجل”، “أخبار لينكس” و/أو “أخبار مايكروسوفت”. كانت تقوم بفرز تلك الأنواع من الأخبار في قنواتها الخاصة. كان هناك أيضًا قناة “جميع الأخبار” التي تحتوي على جميع المقالات لكننا اعتقدنا أن هذه الميزة كانت لطيفة لأنها فرزت الأنواع إلى حد ما ولم تكن صعبة التنفيذ.
مع كل هذا، هذه فكرة عامة عن كيفية عمل بوت ديسكورد:
- كل ساعة، كان يقوم باستخراج البيانات من THN واستخراج المعلومات الرئيسية حول المقالة. كانت هذه المعلومات تشمل: العنوان، التفاصيل، التاريخ، ورابط المقالة.
- بعد ذلك، كان البوت يتحقق من تاريخ رسائله في الخادم ليرى أي المقالات التي قام باستخراجها جديدة. هذا يضمن أن البوت لا يعيد نشر المقالات التي نشرها بالفعل.
- سيقوم بفرز المقالات الجديدة حسب مواضيع معينة، كما هو موضح أعلاه.
- مع جمع جميع المقالات وتصفيتها، كان البوت يقوم بعد ذلك بنشر رابط كل مقالة في خادم ديسكورد الخاص به بالإضافة إلى القنوات المعنية.
- بعد كل هذا، ينتظر البوت ساعة أخرى لمتابعة نفس الخطوات مرة أخرى.
بشكل عام، تم كتابة بوت ديسكورد بالكامل بلغة بايثون واستخدم الحزم الخارجية التالية: beautifulsoup4، requests، discord.py، وpython-dotenv. أيضًا، تم استضافة بوت ديسكورد على Raspberry Pi 3 B+ الذي كان يعمل بنظام Raspberry Pi OS Lite 32 بت. كنا نشغل البوت بهذه الطريقة:
# تشغيل البوت في الخلفية
python3 bot.py &
بعد أن قمنا بإعداد البوت والخادم، شاركنا مشروعنا مع جميع أصدقائنا وزملائنا في الدراسة. في غضون أسبوع، انضم حوالي 25 شخصًا إلى الخادم.
لكن بعد بضعة أشهر، لاحظنا أن الناس لم يستخدموا الخادم حقًا وغالبية منهم إما غادروا الخادم أو كتموا جميع القنوات في الخادم. السبب الرئيسي وراء ذلك هو أن معظم المستخدمين أرادوا خيارات تصفية أكثر شخصية وتخصيصًا ولم يهتم معظمهم بالأمن السيبراني كثيرًا.
بسبب ذلك، قررنا إغلاق خادم ديسكورد. استمر هذا المشروع من فبراير 2022 إلى مايو 2022، وأغلقنا رسميًا في 25 مايو 2022. في هذا اليوم، أوقفنا البوت، وحذفنا خادم ديسكورد، وحذفنا حساب بوت ديسكورد الذي أنشأناه لهذا المشروع، وجعلنا الشيفرة مفتوحة المصدر تمامًا. يمكنك الاطلاع على الشيفرة هنا: https://github.com/MehmetMHY/thn-discord-bot
بشكل عام. كان هذا مشروعًا ممتعًا وتعلمنا الكثير. أيضًا، في ذلك الوقت لم نكن نعلم ذلك، لكن هذا المشروع كان البداية/الإصدار الأول لمشروعنا الأكبر حتى الآن: Notify-Cyber.