Bot Discord THN

Repository GitHub del progetto

profilo

Durante l’università, e anche ora, io e quasi tutti i miei amici usiamo Discord come una delle nostre principali piattaforme di messaggistica sociale. All’epoca, e anche adesso, volevo essere aggiornato sulle notizie di cybersecurity. Così ho pensato, come progetto divertente, che io e il mio amico avremmo creato un bot Discord che ripubblicasse le notizie di cybersecurity da The Hacker News in un server Discord. Ho presentato l’idea al mio amico e a lui è piaciuta molto, quindi abbiamo iniziato a svilupparlo.

The Hacker News (THN) è un sito di notizie sulla sicurezza informatica. Ora, THN NON è Hacker News. C’è stata un po’ di controversia sul fatto che il nome “The Hacker News” sia molto simile a “Hacker News”, che è un sito di notizie sociali molto popolare e leggendario che si concentra sull’imprenditoria tecnologica. Ma, come qualcuno che usa The Hacker News tutto il tempo, credo che The Hacker News sia una buona fonte per ottenere notizie sulla sicurezza informatica.

Lavorando a questo progetto, una sfida che ho incontrato è stata trovare un modo per estrarre le notizie da THN. Le uniche opzioni disponibili erano o usare l’API di Twitter o fare web scraping di THN. Ho passato del tempo cercando di far funzionare l’API di Twitter ma ho rinunciato perché Twitter ha reso davvero difficile configurare e usare la loro API. Quindi ho ricorso al web scraping di THN. Poiché la codebase sarebbe stata scritta in Python, ho usato requests e beautifulsoup4 per fare il web scraping.

Con lo scraper funzionante, la cosa successiva che abbiamo affrontato è stato il bot Discord. Creare e distribuire un bot Discord è molto semplice. Quindi abbiamo fatto funzionare rapidamente il bot in meno di un giorno. Abbiamo anche configurato il server Discord durante quel periodo.

Una funzionalità che abbiamo aggiunto è stata una funzionalità di “filtri”. Questa funzione avrebbe ordinato gli articoli di THN in base al fatto che fossero “apple-news”, “google-news”, “linux-news” e/o “microsoft-news”. Avrebbe ordinato quei tipi di notizie nei loro canali dedicati. C’era ancora un canale “all” che conteneva tutti gli articoli ma abbiamo pensato che questa funzionalità fosse carina perché organizzava i tipi in qualche modo e non era così difficile da realizzare.

Sapendo tutto questo, questa è un’idea generale di come funzionava il bot Discord:

  1. Ogni 1 ora, eseguiva lo scraping di THN ed estraeva informazioni chiave su un articolo. Queste informazioni includevano: titolo, dettagli, data e URL dell’articolo.
  2. Il bot poi controllava la sua cronologia dei messaggi nel server per vedere quali articoli aveva già scansionato erano nuovi. Questo assicura che il bot non ripubblichi articoli che ha già pubblicato.
  3. Filtrerebbe i nuovi articoli per determinati argomenti, come spiegato sopra.
  4. Con tutti gli articoli raccolti e filtrati, il bot poi pubblicava l’URL di ciascun articolo nel suo server Discord così come nei rispettivi canali del post.
  5. Dopo tutto ciò, il bot aspettava un’altra ora per ripetere gli stessi passaggi.

Tutto sommato, il bot Discord è stato scritto interamente in Python e ha usato i seguenti pacchetti di terze parti: beautifulsoup4, requests, discord.py e python-dotenv. Inoltre, il bot Discord è stato ospitato sul mio Raspberry Pi 3 B+ che eseguiva il sistema operativo Raspberry Pi OS Lite a 32 bit. Avremmo eseguito il bot così:

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

Dopo aver configurato il bot e il server, abbiamo condiviso il nostro progetto con tutti i nostri amici e compagni di classe. In una settimana abbiamo ottenuto circa 25 persone che si sono unite al server.

Ma dopo alcuni mesi, abbiamo notato che le persone non utilizzavano davvero il server e la maggior parte di loro o aveva lasciato il server o aveva messo in muto tutti i canali del server. Il motivo principale per cui lo hanno fatto è che la maggior parte degli utenti voleva opzioni di filtro più personali e personalizzate e la maggior parte di loro non si interessava molto alla cybersecurity.

Per questo motivo, abbiamo deciso di chiudere il server Discord. Questo progetto è durato da febbraio 2022 a maggio 2022, chiudendo ufficialmente il 25 maggio 2022. In quel giorno, abbiamo fermato il bot, eliminato il server Discord, eliminato l’account del bot Discord che avevamo creato per questo progetto e reso il codice completamente open source in questo repository GitHub.

Tutto sommato. È stato un progetto divertente e abbiamo imparato molto. Inoltre, all’epoca non lo sapevamo, ma questo progetto è stato l’inizio/versione iniziale del nostro progetto più grande fino ad oggi… Notify-Cyber!