THN Discord-Bot

GitHub-Repo des Projekts

Profil

Während des Studiums und auch jetzt nutzen meine Freunde und ich Discord als eine unserer wichtigsten sozialen Messaging-Plattformen. Damals und auch heute möchte ich über Neuigkeiten im Bereich Cybersicherheit auf dem Laufenden bleiben. Also dachte ich, als ein Spaßprojekt, mein Freund und ich würden einen Discord-Bot erstellen, der Neuigkeiten aus dem Bereich Cybersicherheit von The Hacker News in einen Discord-Server erneut postet. Ich stellte meinem Freund die Idee vor und er liebte sie, also begannen wir mit der Entwicklung.

The Hacker News (THN) ist eine Nachrichtenseite für Cybersicherheit. THN ist NICHT Hacker News. Es gab einige Kontroversen darüber, dass der Name “The Hacker News” dem von “Hacker News” sehr ähnlich ist, wobei “Hacker News” eine sehr beliebte und legendäre Social-News-Webseite ist, die sich auf Technologie und Unternehmertum konzentriert. Aber als jemand, der The Hacker News die ganze Zeit nutzt, glaube ich, dass The Hacker News eine gute Quelle ist, um Nachrichten zur Cybersicherheit zu erhalten.

Während der Arbeit an diesem Projekt stieß ich auf die Herausforderung, einen Weg zu finden, die Nachrichten von THN zu extrahieren. Die einzigen verfügbaren Optionen waren entweder die Verwendung der Twitter-API oder das Web-Scraping von THN. Ich habe einige Zeit versucht, die Twitter-API zum Laufen zu bringen, gab aber auf, weil Twitter es sehr schwierig machte, ihre API einzurichten und zu nutzen. Also griff ich stattdessen auf Web-Scraping von THN zurück. Da die Codebasis in Python geschrieben werden sollte, verwendete ich requests und beautifulsoup4, um das Web-Scraping durchzuführen.

Mit dem funktionierenden Scraper war das nächste, was wir angingen, der Discord-Bot. Die Erstellung und Bereitstellung eines Discord-Bots ist sehr einfach. Also bekamen wir den Bot schnell in weniger als einem Tag zum Laufen. Wir richteten in diesem Zeitraum auch den Discord-Server ein.

Eine Funktion, die wir hinzufügten, war die “Filter”-Funktion. Diese Funktion würde THN-Artikel danach sortieren, ob sie “apple-news”, “google-news”, “linux-news” und/oder “microsoft-news” waren. Sie würde diese Nachrichtentypen in eigene Kanäle einsortieren. Es gab immer noch einen “all”-Kanal, der alle Artikel enthalten würde, aber wir fanden diese Funktion schön, weil sie die Typen einigermaßen sortierte und nicht so schwierig zu erstellen war.

Mit all dem Wissen hier eine allgemeine Vorstellung davon, wie der Discord-Bot funktionierte:

  1. Jede Stunde kratzte er THN ab und extrahierte Schlüsselinformationen über einen Artikel. Diese Informationen umfassten: Titel, Details, Datum und die URL des Artikels.
  2. Der Bot überprüfte dann seinen Nachrichtenverlauf im Server, um zu sehen, welche der von ihm gescrappten Artikel neu sind. Das stellt sicher, dass der Bot keine Artikel erneut postet, die er bereits gepostet hat.
  3. Er filtert die neuen Artikel nach bestimmten Themen, wie oben erklärt.
  4. Mit allen gesammelten und gefilterten Artikeln postete der Bot dann die URL jedes Artikels in seinen Discord-Server sowie in die jeweiligen Kanäle.
  5. Nach alldem wartet der Bot eine weitere Stunde, um die gleichen Schritte erneut auszuführen.

Alles in allem wurde der Discord-Bot vollständig in Python geschrieben und verwendete die folgenden Drittanbieter-Pakete: beautifulsoup4, requests, discord.py und python-dotenv. Außerdem wurde der Discord-Bot auf meinem Raspberry Pi 3 B+ gehostet, auf dem das 32-Bit Raspberry Pi OS Lite lief. Wir würden den Bot so starten:

# run the bot in the background
python3 bot.py &

Nachdem wir den Bot und den Server eingerichtet hatten, teilten wir unser Projekt mit all unseren Freunden und Kommilitonen. Innerhalb einer Woche traten etwa 25 Personen dem Server bei.

Aber nach ein paar Monaten stellten wir fest, dass die Leute den Server nicht wirklich nutzten und die meisten entweder den Server verlassen oder alle Kanäle stummgeschaltet hatten. Der Hauptgrund dafür war, dass die meisten Nutzer persönlichere und individuellere Filteroptionen wollten und die meisten von ihnen sich nicht so sehr für Cybersicherheit interessierten.

Aus diesem Grund entschieden wir uns, den Discord-Server zu schließen. Dieses Projekt lief von Februar 2022 bis Mai 2022 und wurde offiziell am 25. Mai 2022 eingestellt. An diesem Tag stoppten wir den Bot, löschten den Discord-Server, löschten das Discord-Bot-Konto, das wir für dieses Projekt erstellt hatten, und machten den Code vollständig Open Source in diesem GitHub-Repository.

Alles in allem war dies ein spaßiges Projekt und wir haben viel gelernt. Außerdem wussten wir damals noch nicht, dass dieses Projekt der anfängliche Start/die erste Version für unser bisher größtes Projekt war… Notify-Cyber!