Ikiwa umekuwa kwenye Gumzo la Kupitisha Mtandaoni (IRC), kuna uwezekano kuwa umekutana na bot wakati fulani. Bots ni mipango huru au hati ambazo zinaunganisha kwenye mtandao kwa njia ile ile ambayo mwanadamu angefanya. Wanaweza kusanidiwa kujibu amri za mtumiaji au hata kuzungumza. Katika mwongozo huu, unaweza kupata chaguo zako za kujenga bot ya IRC na pia jinsi ya kujenga moja kutoka mwanzoni.
Hatua
Njia 1 ya 2: Kuchunguza Chaguzi
Hatua ya 1. Fikiria kufunga hati ya mteja
Wakati mwingine unataka kazi rahisi kufanywa na hautaki iwe mpango huru. Katika kesi hiyo, unaweza kushikilia hati kwa mteja wa IRC. Hii ni kawaida kufanya na MIRC, ambayo ina injini dhabiti ya maandishi na anuwai ya hati zinazopatikana. Hii ndiyo chaguo rahisi na inayopendekezwa sana ikiwa hauna uzoefu mwingi au programu yoyote. Kwa mwongozo huu wote, maagizo yanahitaji ujuzi fulani wa programu ya kompyuta kufuata.
Hatua ya 2. Fikiria codebase iliyopo tayari kwa bot yako
Kuna programu nyingi za chanzo wazi na za bure ambazo zinaweza kukusaidia kusanikisha bot yako iliyoboreshwa haraka. Mfano mmoja kama huo ni Eggdrop, bot ya zamani zaidi ya IRC inayoendelea kutunzwa.
Hatua ya 3. Fikiria kuandika bot yako mwenyewe
Kwa watumiaji wa hali ya juu wa IRC na watengenezaji ambao tayari wanajua njia yao karibu na lugha ya programu, hii ni chaguo bora. Unaweza kutumia lugha nzuri sana kwa muda mrefu ikiwa ina msaada wa tundu, lakini maarufu kutumia ni pamoja na Python, Lua, PHP, C, na Perl. Ikiwa haujui yoyote ya haya lakini unajua lugha nyingine, hilo sio shida. Kawaida unaweza kupata mifano kwenye wavuti kwa lugha yoyote unayotaka. Kwa kifungu hiki, tutaonyesha kutumia PHP. Kutumia PHP, utahitaji kuwa na PHP-CLI iliyosanikishwa kwenye kompyuta yako au seva.
- PHP inaweza kupakuliwa kutoka php.net
- Hati za PHP zinaweza kutekelezwa kutoka kwa laini ya amri. Kwa habari ya ziada na usaidie kutumia PHP, angalia ukurasa huu wa mwongozo wa PHP.
Njia ya 2 ya 2: Kuendeleza Bot yako mwenyewe
Hatua ya 1. Kukusanya maelezo ya unganisho
Utahitaji kupata habari ifuatayo ili unganishe kwa mafanikio kwenye mtandao.
-
SevaJina la kikoa cha seva iliyotumiwa kuungana na IRC, kama vile
chat.freenode.net
- Bandari: Katika hali nyingi, hii ni 6667, lakini ikiwa hauna uhakika, angalia mteja wako wa IRC au wavuti ya mtandao.
- Jina la utani: Jina la utani bot yako inapaswa kutumia. Kumbuka kwamba wahusika maalum kawaida hawaruhusiwi (@ #! ~).
-
KitambulishoSehemu ya kitambulisho inaonekana baada ya jina la utani wakati mtu anafanya WHOIS kama hii:
jina la utani! ident @ jina la mwenyeji
- GECOS: Sehemu hii kawaida hushikilia jina halisi la mtumiaji au maelezo ya jumla ya bot lakini unaweza kuweka chochote unachotaka hapo.
- Kituo: Kawaida unataka bot yako iwepo katika njia moja au zaidi. Kwenye mitandao mingi, hizi zimetangulizwa na '#' lakini inaweza kuwa kitu kingine.
Hatua ya 2. Anzisha usanidi katika hati yako
Njia ya msingi zaidi ya kufanya hivyo ni kwa kutaja anuwai kadhaa kulingana na majina ya usanidi hapo juu. Unaweza pia kuzihifadhi kwenye faili ya usanidi na kuzichanganua, lakini kwa sasa tutaambatana na mahitaji kamili.
Hatua ya 3. Unganisha kwenye mtandao
Ili kufanya hivyo, utahitaji kufungua tundu kwa seva kwenye bandari maalum. Unapaswa pia kuongeza nambari ya utunzaji wa makosa katika sehemu hii ikiwa unganisho linashindwa kwa sababu yoyote. Katika kesi hii, PHP hutupatia kazi nadhifu kushughulikia kosa kwa ufanisi.
Hatua ya 4. Sajili bot yako
Hii inamaanisha kusambaza jina lako la utani, kitambulisho, na GECOS kwenye seva, bila kusajili na NickServ. Ili kufanya hivyo, andika tu amri za NICK na USER kwa seva, ikifuatiwa na kurudi kwa gari na newline. Ni muhimu kuifanya kama ilivyoonyeshwa, kwa sababu ndivyo ilivyoainishwa katika RFC1459, maelezo ya itifaki ya IRC.
Kumbuka kuwa vigezo viwili vya kati (katika kesi hii, * na 8) lazima vionyeshwe, lakini hupuuzwa na seva. Hizo mbili hutumiwa tu kati ya seva zilizounganishwa, sio na mteja anayeunganisha moja kwa moja
Hatua ya 5. Endelea kupata data kutoka kwa tundu ukitumia kitanzi
Ikiwa haukutumia kitanzi, hati yako ingekomesha mara moja na bot hiyo itakuwa haina maana. Ili uendelee kushikamana, lazima uchukue data kutoka kwa seva, angalia pembejeo yoyote kwenye mkondo unaotaka, na ujibu ikiwa ni hivyo. Hapa, tunachukua data kwa kutumia socket_read () kunyakua data yoyote inayopatikana kwetu. Ikiwa kuna, tunaendelea kufanya chochote kilicho kwenye kitanzi. Inaweza kusaidia pia kutoa data ghafi kwenye koni ili uweze kuona kinachoendelea kutoka kwa mtazamo wa bot.
Hatua ya 6. Andika mshughulikiaji wa ping
Hii ni muhimu. Ikiwa haujibu pings kwa wakati unaofaa, seva itakutenganisha. Wacha tuitunze hiyo kwanza. Pings inaonekana kama hii wakati imetumwa kutoka kwa seva:
PING: rajaniemi.freenode.net
. Seva haifai kuweka jina lake baada ya ':', inaweza kusambaza chochote inachotaka. Lazima * urudie kurudia kile seva ilisema, isipokuwa kutumia PONG.
Hatua ya 7. Jiunge na vituo vyako
Sawa, kwa hivyo tuna bot inayounganisha na mtandao na inajibu pings, lakini vinginevyo haifanyi chochote. Kwa watu kuona na kutumia bot yako, inapaswa kuwa kwenye kituo (vinginevyo itabidi uiambie ijibu ujumbe wa faragha).
- Ili kufanya hivyo, tutaangalia nambari za hali ya seva 376 au 422. 376 inamaanisha MOTD (ujumbe wa siku) umekamilika. 422 inamaanisha hakukuwa na MOTD yoyote ya kutuma. Hiyo MOTD ni kitu ambacho seva hutuma wakati unaunganisha, lakini ni kiashiria kizuri cha wakati tunaweza kuanza kujiunga na vituo.
- Utahitaji kutoa amri ya JIUNGE. Amri hii inaweza kufuatwa na njia moja au zaidi zilizotengwa na koma.
- Kumbuka kuwa data ambayo seva hutuma imewekwa kwa urahisi na nafasi. Kwa njia hii tunaweza kugawanya data na kuirejelea kwa kutumia faharisi ya safu.
Hatua ya 8. Jibu ujumbe wa kituo
Sasa kwa sehemu ya kufurahisha. Bot yako imejiunga na kituo, kwa hivyo sasa unaweza kuitumia kwa kile ulichotaka. Wacha tuunde mfano amri inayoitwa @moo.
- Kumbuka mpangilio ambao ujumbe unaanzia (hii inatumika kwa vituo vyote na ujumbe wa faragha). Daima iko mahali pamoja.
- Unaweza kushughulikia maagizo na nafasi ndani yao kwa kusanya data iliyokatizwa kurudi pamoja ($ d). Hiyo ni zaidi ya upeo wa nakala hii.
- Ikiwa lengo ni kituo (kama vile # botters-test), basi ujibu hilo. Ikiwa ni ujumbe wa faragha, kidogo hii itakuwa jina la utani la bot yako! Lazima ujibu ukitumia jina la utani la mtumaji, sio lako (vinginevyo ungekuwa unazungumza na wewe mwenyewe, na hiyo ni ujinga tu).
Hatua ya 9. Panua bot yako
Unaweza kuongeza huduma nyingi mpya kwa kutumia utekelezaji hapo juu. Kuna amri zingine nyingi ambazo zinaweza kutolewa kwa mtandao wa IRC, kama vile kusimamia ops, mateke na kupiga marufuku, kuweka mada, kati ya huduma zingine nyingi.
Vidokezo
-
Unaweza kutoa matokeo ya amri ya "/ me" kwa kubandika ujumbe wako kama hii:
- Kituo cha PRIVMSG: / 001ACTION maandishi hapa / 001.
-
001 inamaanisha tabia ya ASCII 1 na itafasiriwa kama hivyo katika kamba ya PHP iliyonukuliwa mara mbili. Vinginevyo, unaweza kutumia
chr (1)
- nje ya kamba.
- Rangi zinaweza kuzalishwa katika ujumbe kwa kuambatanisha "\ 003" (nambari ya ASCII 3) ikifuatiwa na nambari ya rangi. 0 = nyeupe, 1 = nyeusi, 2 = bluu, 3 = kijani, 4 = nyekundu […]. Tazama ukurasa wa MIRC kwa rangi zaidi.
- Kama jambo la heshima, pata idhini ya wamiliki wa vituo na waendeshaji wa IRC kabla ya kuleta bot yako mkondoni. Sio mitandao na vituo vyote vina sera ya kukaribisha kwa bots, hata zile zenye tabia nzuri.
- Mademoni mengine ya IRC huenda zaidi ya maelezo ya itifaki na kutekeleza huduma zingine. Ikiwa unaiandaa kwa mtandao maalum, kwa kweli unaweza kutumia huduma hizo ikiwa unajua juu ya itifaki yao. Ikiwa unataka bot yako kupelekwa kwenye mitandao kadhaa, hata hivyo, jaribu kuiweka kwenye kile kilicho kwenye RFC.