THN डिस्कॉर्ड बॉट
कॉलेज के दौरान, और अभी भी, मैं और मेरे लगभग सभी दोस्त Discord का उपयोग हमारे मुख्य सामाजिक मैसेजिंग प्लेटफ़ॉर्म में से एक के रूप में करते हैं। उस समय, और अब भी, मैं साइबर सुरक्षा समाचारों के बारे में अपडेट रहना चाहता था/चाहता हूँ। इसलिए मैंने सोचा, एक मजेदार परियोजना के रूप में, मैं और मेरे दोस्त एक Discord बॉट बनाएँगे जो The Hacker News से साइबर सुरक्षा समाचारों को एक Discord सर्वर में पुनः पोस्ट करेगा। मैंने यह विचार अपने दोस्त को प्रस्तुत किया और उसे यह विचार बहुत पसंद आया, इसलिए हम विकास शुरू कर दिए।
द हैकर न्यूज़ (THN) एक साइबर सुरक्षा समाचार साइट है। अब, THN Hacker News नहीं है। इस बारे में कुछ विवाद हुआ है कि “The Hacker News” नाम “Hacker News” के बहुत समान है, जो कि एक बहुत लोकप्रिय और प्रसिद्ध सामाजिक समाचार वेबसाइट है जो तकनीक उद्यमिता पर केंद्रित है। लेकिन, एक ऐसे व्यक्ति के रूप में जो The Hacker News को हमेशा उपयोग करता है, मेरा मानना है कि The Hacker News साइबर सुरक्षा समाचार प्राप्त करने के लिए एक अच्छी स्रोत है।
इस परियोजना पर काम करते समय, एक चुनौती जो मुझे मिली वह थी THN से समाचार निकालने का तरीका ढूँढना। उपलब्ध विकल्पों में से केवल दो थे: या तो Twitter API का उपयोग करना या THN को वेब स्क्रैप करना। मैंने कुछ समय Twitter API को काम में लगाने की कोशिश की लेकिन हार मान ली क्योंकि Twitter ने उनका API सेटअप करना और उपयोग करना बहुत कठिन बना दिया। इसलिए मैंने इसके बजाय THN को वेब स्क्रैप करने का रास्ता अपनाया। चूँकि कोडबेस Python में लिखा जाने वाला था, मैंने वेब स्क्रैपिंग के लिए requests और beautifulsoup4 का उपयोग किया।
स्क्रेपर काम करने के बाद, अगली चीज़ जो हमने सुलझाई वह थी Discord बॉट। एक Discord बॉट बनाना और डिप्लॉय करना बहुत सरल है। इसलिए हमने जल्दी ही एक दिन से भी कम समय में बॉट को काम करते हुए पा लिया। उसी समय के दौरान हमने Discord सर्वर भी सेटअप कर लिया था।
एक फीचर जो हमने जोड़ा वह था “फ़िल्टर” फीचर। यह फीचर THN लेखों को यह देखकर सॉर्ट करेगा कि क्या वे “apple-news”, “google-news”, “linux-news” और/या “microsoft-news” थे। यह उन प्रकार के समाचारों को उनके अपने चैनलों में सॉर्ट करेगा। अभी भी एक “all” चैनल था जिसमें सभी लेख होंगे लेकिन हमने सोचा कि यह फीचर अच्छा है क्योंकि यह प्रकारों को कुछ हद तक सॉर्ट करता था और इसे बनाना बहुत चुनौतीपूर्ण नहीं था।
इन सब बातों को जानते हुए, यहाँ यह सामान्य विचार है कि Discord बॉट कैसे काम करता था:
- हर 1 घंटे पर, यह THN को स्क्रैप करेगा और किसी लेख के बारे में मुख्य जानकारी निकालता है। इस जानकारी में शामिल थे: शीर्षक, विवरण, तारीख, और लेख का URL।
- बॉट तब सर्वर में अपने संदेश इतिहास की जाँच करेगा कि उसने जिन लेखों को स्क्रैप किया है उनमें से कौन से नए हैं। इससे यह सुनिश्चित होता है कि बॉट उन लेखों को दोबारा पोस्ट न करे जो उसने पहले ही पोस्ट कर दिए हैं।
- यह नए लेखों को ऊपर बताई गई विशिष्ट विषयों के आधार पर फ़िल्टर करेगा।
- सभी लेखों को एकत्रित और फ़िल्टर करने के बाद, बॉट प्रत्येक लेख का URL अपने Discord सर्वर में तथा संबंधित चैनलों में पोस्ट करेगा।
- इन सब के बाद, बॉट अगले घंटे के लिए प्रतीक्षा करेगा और फिर वही चरण फिर से जारी रखेगा।
कुल मिलाकर, यह Discord बॉट पूरी तरह से Python में लिखा गया था और निम्नलिखित 3rd party पैकेजों का उपयोग करता था: beautifulsoup4, requests, discord.py, और python-dotenv। साथ ही, Discord बॉट को मैंने अपने Raspberry Pi 3 B+ पर होस्ट किया था जो 32 bit Raspberry Pi OS Lite चला रहा था। हम बॉट को ऐसे चलाते थे:
# run the bot in the background
python3 bot.py &
जब हमने बॉट और सर्वर सभी सेटअप कर लिया, तो हमने अपना प्रोजेक्ट अपने सभी दोस्तों और सहपाठियों के साथ साझा किया। एक हफ्ते में लगभग 25 लोग सर्वर में जुड़ गए।
लेकिन कुछ महीनों के बाद, हमने देखा कि लोग वास्तव में सर्वर का उपयोग नहीं कर रहे थे और उनमें से अधिकांश या तो सर्वर छोड़ चुके थे या सर्वर के सभी चैनलों को म्यूट कर चुके थे। उन्होंने ऐसा करने का मुख्य कारण यह था कि अधिकांश उपयोगकर्ता और अधिक व्यक्तिगत और कस्टम फ़िल्टर विकल्प चाहते थे और उनमें से अधिकांश को साइबर सुरक्षा में इतनी दिलचस्पी नहीं थी।
इन कारणों की वजह से, हमने Discord सर्वर को बंद करने का निर्णय लिया। यह प्रोजेक्ट फरवरी 2022 से मई 2022 तक चला, और आधिकारिक तौर पर 25 मई, 2022 को समाप्त हुआ। इस दिन, हमने बॉट को बंद कर दिया, Discord सर्वर हटा दिया, इस प्रोजेक्ट के लिए बनाया गया Discord बॉट अकाउंट हटा दिया, और कोड को पूरी तरह से ओपन सोर्स कर दिया इस GitHub रिपॉजिटरी पर।
कुल मिलाकर। यह एक मजेदार प्रोजेक्ट था और हमने बहुत कुछ सीखा। साथ ही, उस समय हमें यह नहीं पता था, लेकिन यह प्रोजेक्ट हमारे अब तक के सबसे बड़े प्रोजेक्ट का प्रारंभिक संस्करण/शुरुआत थी… Notify-Cyber!