THN Bot ng Discord

Repo ng GitHub ng Proyekto

propayl

Noong kolehiyo, at hanggang ngayon, ako at halos lahat ng aking mga kaibigan ay gumagamit ng Discord bilang isa sa aming pangunahing plataporma ng social messaging. Noong panahong iyon, at hanggang ngayon, gusto kong maging up to date tungkol sa mga balita sa cybersecurity. Kaya naisip ko, bilang isang nakakatuwang proyekto, na ako at ang aking kaibigan ay gagawa ng isang Discord bot na magre-repost ng mga balita sa cybersecurity mula sa The Hacker News papunta sa isang Discord server. Ipinakita ko ang ideya sa aking kaibigan at nagustuhan niya ito, kaya nagsimula kaming idevelop ito.

Ang The Hacker News (THN) ay isang site ng balita tungkol sa cybersecurity. Ngayon, ang THN AY HINDI ang Hacker News. Nagkaroon ng ilang kontrobersya tungkol sa kung paano ang pangalang “The Hacker News” ay napakalapit sa “Hacker News” na isang napakapopular, at maalamat, na social news website na nakatutok sa tech entrepreneurship. Ngunit, bilang isang taong palaging gumagamit ng The Hacker News, naniniwala ako na ang The Hacker News ay isang magandang pinagmulan para makakuha ng mga balita sa cybersecurity.

Habang nagtatrabaho kami sa proyektong ito, isang hamon na hinarap ko ay ang paghahanap ng paraan para kunin ang mga balita mula sa THN. Ang tanging mga pagpipilian na magagamit ay gumamit ng Twitter API o mag-web scrape ng THN. Naglaan ako ng ilang oras na subukang paandarin ang Twitter API ngunit sumuko dahil pinahirapan ng Twitter ang pag-setup at paggamit ng kanilang API. Kaya nagresolba ako na mag-web scrape ng THN na lamang. Dahil ang codebase ay isusulat sa Python, ginamit ko ang requests at beautifulsoup4 para gawin ang web scraping.

Nang gumana na ang scraper, ang susunod na tinutukan namin ay ang Discord bot. Napakasimple gumawa at mag-deploy ng Discord bot. Kaya mabilis naming napagana ang bot sa loob ng mas mababa sa isang araw. Nai-set up din namin agad ang Discord server sa panahong iyon.

Isang tampok na idinagdag namin ay isang “filters” na tampok. Ang tampok na ito ay mag-uuri ng mga artikulo ng THN batay kung ito ay “apple-news”, “google-news”, “linux-news” at/o “microsoft-news”. Iuuri nito ang mga ganitong uri ng balita sa kanilang sariling mga channel. Mayroon pa ring isang “all” channel na naglalaman ng lahat ng mga artikulo ngunit inisip naming maganda ang tampok na ito dahil bahagyang niuuri nito ang mga uri at hindi naman ito masyadong mahirap gawin.

Alam ang lahat ng ito, ito ang pangkalahatang ideya kung paano gumagana ang Discord bot:

  1. Bawat 1 oras, isi-scrape nito ang THN at kukunin ang pangunahing impormasyon tungkol sa isang artikulo. Kasama sa impormasyong ito: pamagat, detalye, petsa, at ang url ng artikulo.
  2. Titingnan ng bot ang history ng kanyang mga mensahe sa server upang makita kung alin sa mga artikulong na-scrape niya ang bago. Tinitiyak nito na hindi magre-repost ang bot ng mga artikulong naipost na niya.
  3. Ifi-filter nito ang mga bagong artikulo ayon sa mga tiyak na paksa, tulad ng ipinaliwanag sa itaas.
  4. Kapag nakolekta at na-filter na ang lahat ng mga artikulo, ipo-post ng bot ang url ng bawat artikulo sa kanyang Discord server pati na rin sa mga tumutugmang channel ng post.
  5. Matapos ang lahat ng ito, hihintayin ng bot ang isa pang oras upang ipagpatuloy ang parehong mga hakbang muli.

Sa kabuuan, ang discord bot ay isinulat nang buo sa Python at gumamit ng mga sumusunod na 3rd party na package: beautifulsoup4, requests, discord.py, at python-dotenv. Gayundin, ang Discord bot ay naka-host sa aking Raspberry Pi 3 B+ na nagpapatakbo ng 32 bit na Raspberry Pi OS Lite. Pinapatakbo namin ang bot tulad nito:

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

Matapos naming maayos ang bot at server, ibinahagi namin ang aming proyekto sa lahat ng aming mga kaibigan at kaklase. Sa loob ng isang linggo nakakuha kami ng humigit-kumulang 25 taong sumali sa server.

Ngunit pagkatapos ng ilang buwan, napansin namin na hindi talaga ginagamit ng mga tao ang server at karamihan sa kanila ay umalis na sa server o ni-mute ang lahat ng mga channel sa server. Ang pangunahing dahilan kung bakit ginawa nila ito ay dahil karamihan sa mga user ay gusto ng mas personal at custom na mga opsyon sa filter at karamihan sa kanila ay hindi gaanong interesado sa cybersecurity.

Dahil dito, napagpasyahan naming isara ang Discord server. Ang proyektong ito ay tumakbo mula Pebrero 2022 hanggang Mayo 2022, opisyal na nagsara noong Mayo 25, 2022. Sa araw na ito, pinahinto namin ang bot, tinanggal ang Discord server, tinanggal ang Discord bot account na ginawa namin para sa proyektong ito, at ginawa ang code na ganap na open source sa GitHub repository.

Sa kabuuan. Ito ay isang nakakatuwang proyekto at marami kaming natutunan. Gayundin, noong panahong iyon hindi pa namin alam ito, ngunit ang proyektong ito ang naging panimulang bersyon para sa aming pinakamalaking proyekto hanggang ngayon… Notify-Cyber!