Bot wa Discord wa THN

Hifadhi ya Mradi kwenye GitHub

wasifu

Wakati nilikuwa chuoni, na hata sasa, mimi na karibu marafiki zangu wote tunatumia Discord kama moja ya majukwaa yetu kuu ya ujumbe wa kijamii. Wakati ule, na hata sasa, nilitaka kuwa na taarifa za hivi karibuni kuhusu habari za usalama wa mtandao. Kwa hivyo nilifikiri, kama mradi wa kufurahisha, mimi na rafiki yangu tutaunda bot ya Discord itakayorejea machapisho ya habari za usalama wa mtandao kutoka The Hacker News katika seva ya Discord. Nilimwasilisha wazo hilo kwa rafiki yangu na alipenda wazo hilo, hivyo tukaanza kuendeleza.

The Hacker News (THN) ni tovuti ya habari za usalama wa mtandao. Sasa, THN SIYO Hacker News. Kumekuwa na mzozo kuhusu jinsi jina “The Hacker News” linavyofanana sana na “Hacker News” ambayo ni tovuti maarufu, na ya hadithi, ya habari za kijamii ambayo inalenga ujasiriamali wa teknolojia. Lakini, kama mtu anayeitumia The Hacker News mara nyingi, ninaamini The Hacker News ni chanzo kizuri cha kupata habari za usalama wa mtandao.

Wakati nikifanya kazi kwenye mradi huu, changamoto moja niliyokutana nayo ilikuwa kupata njia ya kuchota habari kutoka THN. Chaguzi pekee zilizopatikana zilikuwa kutumia API ya Twitter au kuchimba tovuti (web scrape) THN. Nilitumia muda kujaribu kupata API ya Twitter ili ifanye kazi lakini nikakata tamaa kwa sababu Twitter ilifanya iwe vigumu sana kuanzisha na kutumia API yao. Kwa hivyo nilichagua kuchimba tovuti THN badala yake. Kwa kuwa msimbo ulikuwa utaandikwa kwa Python, nilitumia requests na beautifulsoup4 kufanya kuchimba tovuti.

Baada ya scraper kufanya kazi, tukakabili kigezo kilichofuata: bot ya Discord. Kutengeneza na kupeleka bot ya Discord ni rahisi sana. Kwa hivyo tulipata bot ikifanya kazi haraka ndani ya chini ya siku moja. Pia tulianzisha seva ya Discord katika kipindi hicho.

Moja ya kipengele tulichokiongeza ni kipengele cha “filters” (kichujio). Kipengele hiki kingeandaa makala za THN kulingana na ikiwa zilikuwa “apple-news”, “google-news”, “linux-news” na/au “microsoft-news”. Kingeweka aina hizo za habari katika chaneli zao za kipekee. Kulikuwa bado na chaneli ya “all” ambayo ilibeba makala zote lakini tulidhani kipengele hiki kilikuwa kizuri kwa sababu kilipanga aina hizo kiasi na hakukuwa changamoto kubwa kukifanya.

Kutokana na haya yote, huu ni wazo jumla wa jinsi bot ya Discord ilivyofanya kazi:

  1. Kila saa 1, ingechimba THN na kutoa taarifa muhimu kuhusu makala. Taarifa hizi ziliwemo: kichwa, maelezo, tarehe, na URL ya makala.
  2. Bot ingeangalia rekodi yake ya ujumbe kwenye seva kuona ni makala gani aliyoyachimba ni mpya. Hii inahakikisha bot hairejelei machapisho ambayo tayari iliyachapisha.
  3. Itachuja makala mpya kwa mada fulani, kama ilivyoelezwa hapo juu.
  4. Baada ya kukusanya na kuchuja makala zote, bot ingebandikisha URL ya kila makala kwenye seva yake ya Discord pamoja na kwenye chaneli husika za chapisho.
  5. Baada ya yote haya, bot inasubiri saa nyingine ili kuendelea na hatua zile zile tena.

Kwa ujumla, bot ya Discord iliandikwa kabisa kwa Python na ilitumia vifurushi vya wahusika wengine vifuatavyo: beautifulsoup4, requests, discord.py, na python-dotenv. Pia, bot ya Discord ilihifadhiwa kwenye Raspberry Pi 3 B+ yangu ambayo ilikuwa ikitumia Raspberry Pi OS Lite ya 32 bit. Tulikuwa tunaendesha bot hivi:

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

Baada ya sisi kufanikiwa kuweka bot na seva, tulishiriki mradi wetu na marafiki zetu wote na wenzetu wa darasani. Kwa wiki moja tulipata takriban watu 25 kujiunga na seva.

Lakini baada ya miezi michache, tuligundua kuwa watu hawakuutumia sana seva na wengi wao walikuwa wametoka kwenye seva au wamezitaza chaneli zote kwenye seva. Sababu kuu ya kufanya hivyo ilikuwa kwa sababu watumiaji wengi walitaka chaguzi zaidi za kichujio za kibinafsi na zilizobinafsishwa, na wengi wao hawakujali sana kuhusu usalama wa mtandao.

Kwa sababu hiyo, tuliamua kuzima seva ya Discord. Mradi huu uliendeshwa kutoka Februari 2022 hadi Mei 2022, ukifungwa rasmi tarehe 25 Mei 2022. Siku hiyo, tulisimamisha bot, tulifuta seva ya Discord, tulifuta akaunti ya bot ya Discord tuliyoiunda kwa mradi huu, na tukafanya msimbo ukawa chanzo wazi kabisa katika Hifadhi ya GitHub.

Kwa ujumla. Huu ulikuwa mradi wa kufurahisha na tulijifunza mengi. Pia, wakati huo hatukuwa tukijua hili, lakini mradi huu ulikuwa mwanzo/ toleo la awali la mradi wetu mkubwa zaidi hadi sasa… Notify-Cyber!