Le Bot Discord The Hacker News

Dépôt GitHub du projet

profil

Pendant l’université, 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 encore aujourd’hui, je veux être à jour sur les actualités de la cybersécurité. J’ai donc pensé, comme projet amusant, que mon ami et moi créerions un bot Discord qui republierait les actualités de 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 quelques controverse concernant 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 de cybersécurité.

En travaillant sur ce projet, un défi que j’ai rencontré était de trouver un moyen d’extraire les actualités de THN. Les seules options disponibles étaient d’utiliser l’API Twitter ou de faire du scraping web de THN. J’ai passé du temps à essayer de faire fonctionner l’API Twitter mais j’ai abandonné parce que Twitter rendait très difficile la configuration et l’utilisation de leur API. J’ai donc opté pour le scraping web de THN à la place. Comme la base de code allait être écrite en Python, j’ai utilisé les bibliothèques requests et beautifulsoup4 pour faire le scraping web.

Avec le scraper fonctionnel, 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 cette période.

Une fonctionnalité que nous avons ajoutée est la fonction « filters » . Cette fonctionnalité triait les articles de THN selon qu’ils étaient « apple-news », « google-news », « linux-news » et/ou « microsoft-news ». Elle classait ces types d’actualités dans leurs propres canaux. Il y avait toujours un canal « all » qui contenait tous les articles, mais nous avons pensé que cette fonctionnalité était intéressante car elle triait les types d’une certaine manière et n’était pas très difficile à réaliser.

En sachant tout cela, voici une idée générale du fonctionnement du bot Discord :

  1. Toutes les heures, il scrappait THN et extrayait les informations clés d’un article. Ces informations comprenaient : le titre, les détails, la date et l’URL de l’article.
  2. Le bot vérifiait ensuite son historique de messages sur le serveur pour voir quels articles il avait scrappés et qui étaient nouveaux. Cela garantit que le bot ne republie pas les articles 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 publiait alors l’URL de chaque article sur son serveur Discord ainsi que dans les canaux respectifs du post.
  5. Après tout cela, le bot attend une autre heure pour répéter les mêmes étapes.

En résumé, le bot Discord a été entièrement écrit en Python et utilisait 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+ exécutant le Raspberry Pi OS Lite 32 bits. Nous exécutions le bot de cette façon :

# run the bot in the background
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, nous avons eu 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 que la plupart d’entre eux avaient soit quitté le serveur, soit mis en sourdine tous les canaux du serveur. La principale raison était que la plupart des utilisateurs souhaitaient des options de filtres plus personnelles et personnalisées et que 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, clôturant officiellement le 25 mai 2022. Ce jour-là, nous avons arrêté le bot, supprimé le serveur Discord, supprimé le compte du bot Discord que nous avions créé pour ce projet, et rendu le code entièrement open source. Vous pouvez consulter le code ici : https://github.com/MehmetMHY/thn-discord-bot

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 était le départ/la version initiale de notre plus grand projet à ce jour : Notify-Cyber.