Bot Discord THN
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 selalu 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 Berita Peretas ke dalam server Discord. Saya menyampaikan ide itu kepada teman saya dan dia menyukainya, jadi kami mulai mengembangkannya.
Berita Peretas (THN) adalah situs berita keamanan siber. Sekarang, THN BUKANlah Berita Hacker. 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. Namun, sebagai seseorang yang menggunakan Berita Peretas sepanjang waktu, saya percaya Berita Peretas adalah sumber yang baik untuk mendapatkan berita keamanan siber.
Saat mengerjakan proyek ini, satu tantangan yang saya temui adalah menemukan cara untuk mengekstrak berita dari THN. Satu-satunya opsi yang tersedia adalah menggunakan API Twitter atau melakukan web scraping ke THN. Saya menghabiskan beberapa 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 web scraping.
Dengan scraper yang berjalan, hal berikutnya yang kami tangani adalah bot Discord. Membuat dan menerapkan bot Discord sangat sederhana. Jadi kami dengan cepat membuat bot berjalan dalam waktu 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”. Ia akan mengurutkan jenis-jenis berita tersebut ke saluran mereka masing-masing. Masih ada saluran “all” yang akan berisi semua artikel tetapi kami berpikir fitur ini bagus karena mengelompokkan jenis-jenisnya dan tidak terlalu menantang untuk dibuat.
Mengetahui semua ini, ini adalah gambaran umum bagaimana bot Discord bekerja:
- Setiap 1 jam, ia akan meng-scrape THN dan mengekstrak informasi kunci tentang sebuah artikel. Informasi ini meliputi: judul, detail, tanggal, dan URL artikel.
- Bot kemudian akan memeriksa riwayat pesannya di server untuk melihat artikel mana yang telah di-scrap yang baru. Ini memastikan bot tidak memposting ulang artikel yang sudah dipostingnya.
- Ia akan menyaring artikel baru berdasarkan topik tertentu, seperti yang dijelaskan di atas.
- Dengan semua artikel yang dikumpulkan dan disaring, bot akan memposting URL setiap artikel ke server Discord-nya serta ke saluran terkait dari postingan tersebut.
- Setelah semua ini, bot menunggu satu jam lagi untuk melanjutkan langkah yang sama lagi.
Secara keseluruhan, bot Discord ditulis sepenuhnya dalam Python dan menggunakan paket pihak ketiga berikut: beautifulsoup4, requests, discord.py, dan python-dotenv. Selain itu, bot Discord dihosting di Raspberry Pi 3 B+ 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 rekan sekelas kami. Dalam waktu satu minggu kami mendapat sekitar 25 orang yang bergabung dengan server.
Namun setelah beberapa bulan, kami menyadari bahwa orang-orang tidak benar-benar menggunakan server dan sebagian besar dari mereka entah meninggalkan server atau mematikan suara 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. Anda dapat melihat kodenya di sini: https://github.com/MehmetMHY/thn-discord-bot
Secara keseluruhan, ini adalah proyek yang menyenangkan dan kami belajar banyak. Juga, pada saat itu kami tidak tahu ini, tetapi proyek ini adalah awal/versi awal untuk proyek terbesar kami hingga saat ini: Notify-Cyber.