द हैकर न्यूज़ डिस्कॉर्ड बॉट

प्रोजेक्ट का गिटहब रेपो

प्रोफ़ाइल

कॉलेज के दौरान, और अब भी, मैं और मेरे लगभग सभी दोस्त डिस्कॉर्ड को अपने मुख्य सामाजिक संदेश प्लेटफ़ॉर्म में से एक के रूप में उपयोग करते हैं। उस समय, और अब भी, मैं साइबरसुरक्षा समाचारों के बारे में अद्यतन रहना चाहता हूँ। इसलिए मैंने सोचा, एक मज़ेदार प्रोजेक्ट के रूप में, मैं और मेरा दोस्त एक डिस्कॉर्ड बॉट बनाएँगे जो द हैकर न्यूज़ से साइबरसुरक्षा समाचारों को डिस्कॉर्ड सर्वर में पुनः पोस्ट करेगा। मैंने यह विचार अपने दोस्त को प्रस्तुत किया और उसे यह विचार बहुत पसंद आया, इसलिए हमने विकास शुरू किया।

द हैकर न्यूज़ (THN) एक साइबरसुरक्षा समाचार साइट है। अब, THN हैकर न्यूज़ नहीं है। “[द हैकर न्यूज़]” नाम “[हैकर न्यूज़]” से बहुत समान है, जो एक बहुत लोकप्रिय और दंतकथात्मक सामाजिक समाचार वेबसाइट है जो तकनीकी उद्यमिता पर केंद्रित है, इस बारे में कुछ विवाद रहे हैं। लेकिन, जो व्यक्ति हमेशा द हैकर न्यूज़ का उपयोग करता है, मैं मानता हूँ कि द हैकर न्यूज़ साइबरसुरक्षा समाचार प्राप्त करने के लिए एक अच्छा स्रोत है।

ठीक है, इस प्रोजेक्ट पर काम करते हुए, एक चुनौती जिसका सामना मुझे हुआ वह THN से समाचार निकालने का तरीका ढूँढ़ना था। उपलब्ध एकमात्र विकल्प थे या तो ट्विटर API का उपयोग करना या THN को वेब स्क्रैप करना। मैंने कुछ समय ट्विटर API को काम करने की कोशिश में बिताया लेकिन हार मान ली क्योंकि ट्विटर ने उनके API को सेटअप और उपयोग करना बहुत कठिन बना दिया। इसलिए मैंने इसके बजाय THN को वेब स्क्रैप करने का विकल्प चुना। चूँकि कोडबेस पायथन में लिखा जाएगा, मैंने वेब स्क्रैपिंग के लिए requests और beautifulsoup4 का उपयोग किया।

स्क्रैपर काम करने के बाद, अगली चीज़ जिसे हमने संभाला वह डिस्कॉर्ड बॉट था। डिस्कॉर्ड बॉट बनाना और डिप्लॉय करना बहुत सरल है। इसलिए हमने बॉट को एक दिन से भी कम समय में काम करने में सफल रहे। हमने उसी समय अवधि में डिस्कॉर्ड सर्वर भी सेटअप कर लिया।

हमने एक “फ़िल्टर” फीचर जोड़ा। यह फीचर THN लेखों को “apple-news”, “google-news”, “linux-news” और/या “microsoft-news” के आधार पर वर्गीकृत करता था। यह उन प्रकार के समाचारों को उनके अपने चैनलों में व्यवस्थित करता था। अभी भी एक “all” चैनल था जिसमें सभी लेख होते थे, लेकिन हमें यह फीचर अच्छा लगा क्योंकि यह प्रकारों को कुछ हद तक व्यवस्थित करता था और इसे बनाना बहुत चुनौतीपूर्ण नहीं था।

इन सबको जानते हुए, यह डिस्कॉर्ड बॉट कैसे काम करता था इसका एक सामान्य विचार है:

  1. हर 1 घंटे में, यह THN को स्क्रैप करता और किसी लेख की मुख्य जानकारी निकालता। इस जानकारी में शामिल थे: शीर्षक, विवरण, तिथि, और लेख का URL।
  2. बॉट फिर सर्वर में अपनी संदेश इतिहास की जाँच करता कि कौन से लेख नए हैं जिन्हें उसने स्क्रैप किया है। इससे यह सुनिश्चित होता है कि बॉट उन लेखों को पुनः पोस्ट नहीं करता जो पहले ही पोस्ट किए जा चुके हैं।
  3. यह नए लेखों को ऊपर बताए गए कुछ विषयों के अनुसार फ़िल्टर करेगा।
  4. सभी लेख एकत्रित और फ़िल्टर हो जाने के बाद, बॉट प्रत्येक लेख का URL उसके डिस्कॉर्ड सर्वर में तथा संबंधित चैनलों में पोस्ट करेगा।
  5. इन सबके बाद, बॉट एक घंटे और इंतजार करता है और फिर वही चरण दोहराता है।

समग्र रूप से, डिस्कॉर्ड बॉट पूरी तरह पायथन में लिखा गया था और निम्नलिखित तृतीय-पक्ष पैकेजों का उपयोग किया: beautifulsoup4, requests, discord.py, और python-dotenv। साथ ही, डिस्कॉर्ड बॉट मेरे रास्पबेरी पाई 3 B+ पर होस्ट किया गया था जो 32 बिट रास्पबेरी पाई OS Lite चला रहा था। हम बॉट को इस तरह चलाते थे:

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

बॉट और सर्वर सेटअप हो जाने के बाद, हमने अपना प्रोजेक्ट अपने सभी दोस्तों और सहपाठियों के साथ साझा किया। एक सप्ताह में लगभग 25 लोगों ने सर्वर में शामिल हुए।

लेकिन कुछ महीनों के बाद, हमने देखा कि लोग वास्तव में सर्वर का उपयोग नहीं कर रहे थे और उनमें से अधिकांश या तो सर्वर छोड़ चुके थे या सर्वर के सभी चैनलों को म्यूट कर चुके थे। इसका मुख्य कारण यह था कि अधिकांश उपयोगकर्ता अधिक व्यक्तिगत और कस्टम फ़िल्टर विकल्प चाहते थे और उनमें से अधिकांश को साइबरसुरक्षा की परवाह नहीं थी।

इसी कारण, हमने डिस्कॉर्ड सर्वर को बंद करने का फैसला किया। यह प्रोजेक्ट फरवरी 2022 से मई 2022 तक चला, और 25 मई 2022 को आधिकारिक रूप से बंद हुआ। उस दिन, हमने बॉट को रोक दिया, डिस्कॉर्ड सर्वर को हटाया, इस प्रोजेक्ट के लिए बनाया गया डिस्कॉर्ड बॉट अकाउंट हटाया, और कोड को पूरी तरह ओपन सोर्स बना दिया। आप कोड यहाँ देख सकते हैं: https://github.com/MehmetMHY/thn-discord-bot

समग्र रूप से। यह एक मज़ेदार प्रोजेक्ट था और हमने बहुत कुछ सीखा। साथ ही, उस समय हमें यह नहीं पता था, लेकिन यह प्रोजेक्ट हमारे सबसे बड़े प्रोजेक्ट की शुरुआती शुरुआत/संस्करण था: Notify-Cyber.