Bot Discord THN
Pendant mes études, et même maintenant, mes amis et moi utilisons Discord comme l’une de nos principales plateformes de messagerie sociale. À l’époque, et encore aujourd’hui, je veux être informé des actualités en cybersécurité. J’ai donc pensé, comme projet amusant, que mon ami et moi ferions un bot Discord qui republierait les actualités en cybersécurité de The Hacker News dans un serveur Discord. J’ai présenté l’idée à mon ami et il a adoré l’idée, alors nous avons commencé à le développer.
The Hacker News (THN) est un site d’actualités sur la cybersécurité. Maintenant, THN n’est PAS Hacker News. Il y a eu une controverse sur le fait que le nom “The Hacker News” est très similaire à “Hacker News”, qui est un site d’actualités sociales très populaire et légendaire axé sur l’entrepreneuriat technologique. Mais, en tant que personne qui utilise The Hacker News tout le temps, je crois que The Hacker News est une bonne source pour obtenir des actualités en cybersécurité.
En travaillant sur ce projet, un défi auquel je me suis heurté a été de trouver un moyen d’extraire les actualités de THN. Les seules options disponibles étaient soit d’utiliser l’API Twitter soit de faire du web scraping de THN. J’ai passé du temps à essayer de faire fonctionner l’API Twitter, mais j’ai abandonné parce que Twitter rendait vraiment difficile la configuration et l’utilisation de leur API. Je me suis donc tourné vers le web scraping de THN à la place. Comme la base de code allait être écrite en Python, j’ai utilisé requests et beautifulsoup4 pour faire le scraping Web.
Avec le scraper fonctionnel, la prochaine chose sur laquelle nous nous sommes attaqués était le bot Discord. Créer et déployer un bot Discord est très simple. Nous avons donc rapidement fait fonctionner le bot en moins d’un jour. Nous avons également configuré le serveur Discord pendant cette période.
Une fonctionnalité que nous avons ajoutée était une fonctionnalité de “filtres”. Cette fonctionnalité triait les articles de THN selon qu’ils étaient “apple-news”, “google-news”, “linux-news” et/ou “microsoft-news”. Elle plaçait ces types d’articles dans leurs propres canaux. Il y avait toujours un canal “all” qui contiendrait tous les articles, mais nous avons trouvé que cette fonctionnalité était agréable parce qu’elle classait un peu les types et n’était pas trop difficile à réaliser.
Sachant tout cela, voici une idée générale de la façon dont le bot Discord fonctionnait :
- Toutes les heures, il scrappait THN et extrayait les informations clés sur un article. Ces informations comprenaient : le titre, les détails, la date et l’URL de l’article.
- Le bot vérifiait ensuite son historique de messages dans le serveur pour voir quels articles qu’il avait scrapés étaient nouveaux. Cela garantit que le bot ne republie pas des articles qu’il a déjà postés.
- Il filtrait les nouveaux articles par certains sujets, comme expliqué ci-dessus.
- Avec tous les articles collectés et filtrés, le bot publiait ensuite l’URL de chaque article dans son serveur Discord ainsi que dans les canaux respectifs des publications.
- Après tout cela, le bot attend une autre heure pour reprendre les mêmes étapes.
En fin de compte, le bot Discord a été entièrement écrit en Python et a utilisé les paquets tiers suivants : beautifulsoup4, requests, discord.py et python-dotenv. De plus, le bot Discord était hébergé sur mon Raspberry Pi 3 B+ qui tournait sous Raspberry Pi OS Lite 32 bits. Nous lancions le bot ainsi :
# run the bot in the background
python3 bot.py &
Après avoir mis en place le bot et le serveur, nous avons partagé notre projet avec tous nos amis et camarades de classe. En une semaine, nous avons environ 25 personnes qui ont rejoint le serveur.
Mais après quelques mois, nous avons remarqué que les gens n’utilisaient pas vraiment le serveur et la plupart d’entre eux avaient soit quitté le serveur soit mis tous les canaux en sourdine. La raison principale pour laquelle ils ont fait cela était que la plupart des utilisateurs voulaient des options de filtrage plus personnelles et personnalisées et la plupart d’entre eux ne se souciaient pas beaucoup de la cybersécurité.
À cause de cela, nous avons décidé de fermer le serveur Discord. Ce projet a fonctionné de février 2022 à mai 2022, se terminant officiellement le 25 mai 2022. Ce jour-là, nous avons arrêté le bot, supprimé le serveur Discord, supprimé le compte de bot Discord que nous avions créé pour ce projet, et rendu le code entièrement open source dans ce dépôt GitHub.
En résumé. Ce fut un projet amusant et nous avons beaucoup appris. De plus, à l’époque nous ne le savions pas, mais ce projet a été le démarrage/la première version de notre plus grand projet à ce jour… Notify-Cyber!