Bot Discord THN

Repositori GitHub Proyek

profil

Selama kuliah, dan bahkan sekarang, saya dan hampir semua teman saya menggunakan Discord sebagai salah satu platform pesan sosial utama kami. Saat itu, dan bahkan sekarang, saya ingin terus mengikuti berita keamanan siber. Jadi saya berpikir, sebagai proyek yang menyenangkan, saya dan teman saya akan membuat bot Discord yang akan memposting ulang berita keamanan siber dari The Hacker News ke dalam server Discord. Saya menyampaikan ide itu kepada teman saya dan dia menyukai idenya, jadi kami mulai mengembangkannya.

The Hacker News (THN) adalah situs berita keamanan siber. Sekarang, THN BUKAN Hacker News. Telah ada beberapa kontroversi tentang bagaimana nama “The Hacker News” sangat mirip dengan “Hacker News” yang merupakan situs berita sosial yang sangat populer dan legendaris yang berfokus pada kewirausahaan teknologi. Tetapi, sebagai seseorang yang menggunakan The Hacker News sepanjang waktu, saya percaya The Hacker News adalah sumber yang bagus untuk mendapatkan berita keamanan siber.

Saat mengerjakan proyek ini, salah satu tantangan yang saya hadapi adalah menemukan cara untuk mengekstrak berita dari THN. Satu-satunya opsi yang tersedia adalah menggunakan API Twitter atau melakukan web scraping THN. Saya menghabiskan waktu mencoba membuat API Twitter bekerja tetapi menyerah karena Twitter membuatnya sangat sulit untuk mengatur dan menggunakan API mereka. Jadi saya memilih untuk melakukan web scraping THN sebagai gantinya. Karena basis kode akan ditulis dalam Python, saya menggunakan requests dan beautifulsoup4 untuk melakukan pengikisan web.

Dengan scraper yang bekerja, hal berikutnya yang kami tangani adalah bot Discord. Membuat dan menerapkan bot Discord sangat sederhana. Jadi kami dengan cepat membuat bot bekerja dalam kurang dari sehari. Kami juga menyiapkan server Discord selama rentang waktu itu.

Satu fitur yang kami tambahkan adalah fitur “filter”. Fitur ini akan mengurutkan artikel THN berdasarkan apakah itu “apple-news”, “google-news”, “linux-news” dan/atau “microsoft-news”. Itu akan mengelompokkan jenis-jenis berita tersebut ke dalam saluran mereka sendiri. Masih ada saluran “all” yang berisi semua artikel tetapi kami pikir fitur ini bagus karena mengurutkan jenis-jenis berita tersebut dan tidak terlalu menantang untuk dibuat.

Mengetahui semua ini, ini adalah gambaran umum tentang bagaimana bot Discord bekerja:

  1. Setiap 1 jam, bot akan melakukan scraping THN dan mengekstrak informasi kunci tentang sebuah artikel. Informasi ini meliputi: judul, detail, tanggal, dan URL artikel.
  2. Bot kemudian akan memeriksa riwayat pesannya di server untuk melihat artikel mana yang baru. Ini memastikan bot tidak memposting ulang artikel yang sudah dipostingnya.
  3. Bot akan memfilter artikel baru berdasarkan topik tertentu, seperti dijelaskan di atas.
  4. Dengan semua artikel yang dikumpulkan dan difilter, bot kemudian akan memposting URL setiap artikel ke server Discord serta ke saluran terkait.
  5. Setelah semua ini, bot menunggu satu jam lagi untuk melanjutkan langkah-langkah yang sama.

Secara keseluruhan, bot discord ini ditulis seluruhnya dalam Python dan menggunakan paket pihak ketiga berikut: beautifulsoup4, requests, discord.py, dan python-dotenv. Juga, bot Discord dihosting di Raspberry Pi 3 B+ milik saya yang menjalankan Raspberry Pi OS Lite 32 bit. Kami menjalankan bot seperti ini:

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

Setelah kami menyiapkan bot dan server, kami membagikan proyek kami kepada semua teman dan teman sekelas kami. Dalam seminggu kami mendapatkan sekitar 25 orang yang bergabung ke server.

Tetapi setelah beberapa bulan, kami memperhatikan bahwa orang-orang sebenarnya tidak menggunakan server dan kebanyakan dari mereka entah keluar dari server atau membisukan semua saluran di server. Alasan utama mereka melakukan ini adalah karena kebanyakan pengguna menginginkan opsi filter yang lebih personal dan kustom serta kebanyakan dari mereka tidak terlalu peduli tentang keamanan siber.

Karena hal ini, kami memutuskan untuk menutup server Discord. Proyek ini berjalan dari Februari 2022 hingga Mei 2022, secara resmi ditutup pada 25 Mei 2022. Pada hari itu, kami menghentikan bot, menghapus server Discord, menghapus akun bot Discord yang kami buat untuk proyek ini, dan menjadikan kode sepenuhnya sumber terbuka di repositori GitHub.

Secara keseluruhan. Ini adalah proyek yang menyenangkan dan kami belajar banyak. Juga, pada saat itu kami tidak menyadarinya, tetapi proyek ini adalah awal/versi awal untuk proyek terbesar kami sejauh ini… Notify-Cyber!