Bot Discord THN

Repo GitHub du projet

profil

Pendant mes études, et même maintenant, moi et presque tous mes amis utilisons Discord comme l’une de nos principales plateformes de messagerie sociale. À l’époque, et même maintenant, je voulais être au courant des actualités en cybersécurité. Alors j’ai pensé, comme un 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 en cybersécurité. Maintenant, THN n’est PAS Hacker News. Il y a eu quelques controverses sur le fait que le nom “The Hacker News” est très similaire à “Hacker News”, qui est un site web 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 nouvelles en cybersécurité.

En travaillant sur ce projet, un défi auquel j’ai été confronté était de trouver un moyen d’extraire les nouvelles de THN. Les seules options disponibles étaient soit d’utiliser l’API Twitter, soit de faire du web scraping de THN. J’ai passé un certain temps à essayer de faire fonctionner l’API Twitter mais j’ai abandonné car Twitter a rendu très difficile la configuration et l’utilisation de leur API. J’ai donc opté pour le web scraping de THN à la place. Étant donné que la base de code allait être écrite en Python, j’ai utilisé les bibliothèques requests et beautifulsoup4 pour faire le web scraping.

Avec le scraper fonctionnant, la prochaine chose que nous avons abordée é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’une journée. Nous avons également configuré le serveur Discord pendant ce laps de temps.

Une fonctionnalité que nous avons ajoutée était une fonctionnalité de “filtres”. Cette fonctionnalité trierait les articles de THN selon qu’ils étaient “apple-news”, “google-news”, “linux-news” et/ou “microsoft-news”. Elle trierait ces types de nouvelles dans leurs propres canaux. Il y avait toujours un canal “tous” qui contenait tous les articles, mais nous pensions que cette fonctionnalité était agréable car elle triait les types d’une certaine manière et n’était pas si difficile à réaliser.

Sachant tout cela, voici une idée générale de la façon dont le bot Discord fonctionnait :

  1. Chaque heure, il scrapperait THN et extrairait des informations clés sur un article. Ces informations comprenaient : le titre, les détails, la date et l’URL de l’article.
  2. Le bot vérifierait ensuite son historique de messages dans le serveur pour voir quels articles il a scrappés sont nouveaux. Cela garantit que le bot ne republie pas des articles qu’il a déjà publiés.
  3. Il filtrera les nouveaux articles par certains sujets, comme expliqué ci-dessus.
  4. Avec tous les articles collectés et filtrés, le bot publierait ensuite l’URL de chaque article dans son serveur Discord ainsi que dans les canaux respectifs des publications.
  5. Après tout cela, le bot attendrait une autre heure pour continuer les mêmes étapes à nouveau.

Dans l’ensemble, le bot Discord a été entièrement écrit en Python et a utilisé les packages tiers suivants : beautifulsoup4, requests, discord.py et python-dotenv. De plus, le bot Discord était hébergé sur mon Raspberry Pi 3 B+ qui exécutait le Raspberry Pi OS Lite 32 bits. Nous exécutions le bot de cette manière :

# exécuter le bot en arrière-plan
python3 bot.py &

Après avoir configuré le bot et le serveur, nous avons partagé notre projet avec tous nos amis et camarades de classe. En une semaine, environ 25 personnes ont rejoint le serveur.

Mais après quelques mois, nous avons remarqué que les gens n’utilisaient pas vraiment le serveur et que la plupart d’entre eux avaient soit quitté le serveur, soit mis en sourdine tous les canaux du serveur. La principale raison pour laquelle ils ont fait cela était que la plupart des utilisateurs voulaient des options de filtrage plus personnelles et personnalisées et que la plupart d’entre eux ne se souciaient pas tant que ça 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, fermant officiellement boutique 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 complètement open source. Vous pouvez consulter le code ici : https://github.com/MehmetMHY/thn-discord-bot

Dans l’ensemble. C’était un projet amusant et nous avons beaucoup appris. De plus, à l’époque, nous ne le savions pas, mais ce projet était le début/version initiale de notre plus grand projet à ce jour : Notify-Cyber.