بوت ديسكورد THN

مستودع المشروع على جيت هاب

الملف الشخصي

خلال الجامعة، وحتى الآن، أنا ومعظم أصدقائي نستخدم ديسكورد كأحد منصات المراسلة الاجتماعية الرئيسية لدينا. في ذلك الوقت، وحتى الآن، أردت أن أكون على اطلاع بأخبار الأمن السيبراني. لذلك فكرت، كمشروع ممتع، أنني وصديقي سنصنع بوت ديسكورد يعيد نشر أخبار الأمن السيبراني من The Hacker News إلى خادم ديسكورد. طرحت الفكرة على صديقي وقد أحب الفكرة، فبدأنا في تطويرها.

ذا هاكر نيوز (THN) هو موقع أخبار عن الأمن السيبراني. الآن، THN ليس هاكر نيوز. كانت هناك بعض الجدل حول مدى تشابه اسم “The Hacker News” مع “Hacker News” وهو موقع أخبار اجتماعي شهير وأساطيري يركز على ريادة الأعمال التقنية. لكن، كشخص يستخدم The Hacker News طوال الوقت، أعتقد أن The Hacker News مصدر جيد للحصول على أخبار الأمن السيبراني.

أثناء العمل على هذا المشروع، واجهت تحديًا في إيجاد طريقة لاستخراج الأخبار من THN. الخيارات الوحيدة المتاحة كانت إما استخدام واجهة برمجة تطبيقات تويتر أو استخدام تجريف الويب لموقع THN. قضيت بعض الوقت في محاولة جعل واجهة تويتر تعمل لكني استسلمت لأن تويتر جعلت إعداد واستخدام واجهتها صعبًا حقًا. لذا لجأت إلى تجريف موقع THN بدلاً من ذلك. وبما أن قاعدة الشيفرة ستكون مكتوبة بلغة بايثون، استخدمت مكتبات requests و beautifulsoup4 للقيام بتجريف الويب.

بعمل المُجَرِّب بشكل جيد، كان الشيء التالي الذي تناولناه هو بوت ديسكورد. إنشاء ونشر بوت ديسكورد بسيط جدًا. لذا جعلنا البوت يعمل بسرعة في أقل من يوم. كما قمنا أيضًا بإعداد خادم ديسكورد خلال تلك الفترة الزمنية أيضًا.

ميزة واحدة أضفناها هي ميزة “الفلاتر”. هذه الميزة كانت تقوم بفرز مقالات THN بحسب ما إذا كانت “apple-news” أو “google-news” أو “linux-news” و/أو “microsoft-news”. كانت تقوم بفرز تلك الأنواع من الأخبار إلى قنواتها الخاصة. كان هناك أيضًا قناة “الكل” التي تحتوي على كل المقالات لكننا رأينا أن هذه الميزة لطيفة لأنها فرزت الأنواع إلى حد ما ولم تكن تحديًا كبيرًا لصنعها.

مع معرفة كل هذا، هذه فكرة عامة عن كيفية عمل بوت ديسكورد:

  1. كل ساعة، يقوم بتجريف THN واستخراج معلومات رئيسية عن المقال. تتضمن هذه المعلومات: العنوان، التفاصيل، التاريخ، ورابط المقال.
  2. ثم سيتحقق البوت من سجل رسائله في الخادم ليرى أي المقالات التي جرفها جديدة. هذا يضمن أن البوت لا يعيد نشر مقالات سبق ونشرها.
  3. سيقوم بتصفية المقالات الجديدة حسب مواضيع معينة، كما هو موضح أعلاه.
  4. بعد جمع كل المقالات وتصفيةها، سيقوم البوت بعد ذلك بنشر رابط كل مقال في خادم ديسكورد الخاص به وكذلك في القنوات الخاصة بكل منشور.
  5. بعد كل هذا، ينتظر البوت ساعة أخرى ليستأنف نفس الخطوات مرة أخرى.

بصورة عامة، كُتب البوت بالكامل بلغة بايثون واستخدم الحزم الخارجية التالية: beautifulsoup4 و requests و discord.py و python-dotenv. أيضًا، كان بوت ديسكورد مستضافًا على راسبيري باي 3 B+ الذي كان يعمل بنسخة 32 بت من نظام Raspberry Pi OS Lite. كنا نشغل البوت كما يلي:

# run the bot in the background
python3 bot.py &

بعد أن جهزنا البوت والخادم كلهما، شاركنا مشروعنا مع جميع أصدقائنا وزملائنا في الصف. خلال أسبوع انضم إلى الخادم حوالي 25 شخصًا.

لكن بعد بضعة أشهر، لاحظنا أن الناس لم يستخدموا الخادم فعليًا ومعظمهم إما غادروا الخادم أو كتموا جميع القنوات في الخادم. السبب الرئيسي لقيامهم بذلك هو أن معظم المستخدمين أرادوا خيارات فلترة أكثر تخصيصًا وشخصية ومعظمهم لم يهتموا كثيرًا بالأمن السيبراني.

بسبب ذلك، قررنا إغلاق خادم ديسكورد. أُجري هذا المشروع من فبراير 2022 إلى مايو 2022، وأغلق رسميًا في 25 مايو 2022. في ذلك اليوم، أوقفنا البوت، حذفنا خادم ديسكورد، حذفنا حساب بوت ديسكورد الذي أنشأناه لهذا المشروع، وجعلنا الشيفرة مفتوحة المصدر تمامًا في هذا مستودع جيت هاب.

بالمجمل. كان هذا مشروعًا ممتعًا وتعلمنا الكثير. أيضًا، في ذلك الوقت لم نكن نعلم هذا، لكن كان هذا المشروع هو البداية/الإصدار الأول لأكبر مشروع لنا حتى الآن… نوتيفاي-سايبر!