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