Yuav Tsim Li Cas IRC Bot: 12 Cov Kauj Ruam (nrog Duab)

Cov txheej txheem:

Yuav Tsim Li Cas IRC Bot: 12 Cov Kauj Ruam (nrog Duab)
Yuav Tsim Li Cas IRC Bot: 12 Cov Kauj Ruam (nrog Duab)

Video: Yuav Tsim Li Cas IRC Bot: 12 Cov Kauj Ruam (nrog Duab)

Video: Yuav Tsim Li Cas IRC Bot: 12 Cov Kauj Ruam (nrog Duab)
Video: tag rau koj lawm - nuj xeem - nkauj tawm tshiab 2022 2024, Lub peb hlis ntuj
Anonim

Yog tias koj tau nyob hauv Is Taws Nem Sib Tham Sib Tham (IRC), muaj feem yuav koj tau ntsib tus bot ntawm qee kis. Bots yog cov program ywj pheej lossis cov ntawv sau uas txuas rau lub network tib yam nkaus li tib neeg xav tau. Lawv tuaj yeem tsim cov phiaj xwm los teb rau cov neeg siv cov lus txib lossis txawm tham. Hauv phau ntawv qhia no, koj tuaj yeem pom qhov koj xaiv yog rau kev tsim IRC bot nrog rau yuav tsim li cas los ntawm kos.

Cov kauj ruam

Txoj Kev 1 ntawm 2: Ntsuam Xyuas Kev Xaiv

Tsim ib qho IRC Bot Kauj Ruam 1
Tsim ib qho IRC Bot Kauj Ruam 1

Kauj Ruam 1. Xav txog kev teeb tsa tus neeg siv cov ntawv

Qee zaum koj tsuas yog xav tau txoj haujlwm yooj yim ua tiav thiab tsis xav kom nws yog qhov haujlwm ywj pheej. Hauv qhov xwm txheej ntawd, koj tuaj yeem xa tsab ntawv mus rau IRC tus neeg siv khoom. Qhov no zoo nkauj heev ua nrog mIRC, uas muaj lub tshuab ua haujlwm zoo thiab muaj ntau yam ntawv sau. Nov yog qhov kev xaiv yooj yim tshaj plaws thiab pom zoo yog tias koj tsis muaj ntau lossis ib qho kev paub dhau los. Rau qhov seem ntawm phau ntawv qhia no, cov lus qhia xav tau qee qhov kev paub txog computer programming kom ua raws.

Tsim IRC Bot Kauj Ruam 2
Tsim IRC Bot Kauj Ruam 2

Kauj Ruam 2. Xav txog lub codebase ua ntej rau koj tus bot

Muaj ntau qhov qhib qhov qhib thiab cov haujlwm pub dawb uas tuaj yeem pab koj teeb tsa koj tus kheej kev kho bot sai. Ib qho piv txwv zoo li Eggdrop, qhov qub tshaj plaws IRC bot tseem raug saib xyuas.

Tsim ib qho IRC Bot Kauj Ruam 3
Tsim ib qho IRC Bot Kauj Ruam 3

Kauj Ruam 3. Xav txog kev sau koj tus kheej bot

Rau cov neeg siv IRC siab dua thiab cov tsim tawm uas twb paub lawv txoj hauv kev ib puag ncig cov lus programming, qhov no yog qhov kev xaiv zoo. Koj tuaj yeem siv ntau yam lus uas koj xav tau tsuav nws muaj qhov txhawb nqa, tab sis cov neeg nyiam siv suav nrog Python, Lua, PHP, C, thiab Perl. Yog tias koj tsis paub ib qho ntawm no tab sis koj paub lwm hom lus, uas tsis yog teeb meem. Feem ntau koj tuaj yeem pom cov piv txwv ntawm lub vev xaib hauv txhua yam lus uas koj xav tau. Txog kab lus no, peb yuav ua qauv qhia siv PHP. Txhawm rau siv PHP, koj yuav tsum muaj PHP-CLI teeb tsa ntawm koj lub computer lossis server.

  • PHP tuaj yeem rub tawm los ntawm php.net
  • PHP cov ntawv tuaj yeem ua tiav los ntawm kab hais kom ua. Yog xav paub ntxiv thiab pab siv PHP, saib nplooj ntawv PHP phau ntawv no.

Txoj Kev 2 ntawm 2: Txhim Kho Koj Tus Kheej

Tsim ib qho IRC Bot Kauj Ruam 4
Tsim ib qho IRC Bot Kauj Ruam 4

Kauj Ruam 1. Sau cov ncauj lus kom ntxaws

Koj yuav tsum tau txais cov ntaub ntawv hauv qab no txhawm rau txuas mus rau lub network tau zoo.

  • Neeg rau zaub mov: Lub npe sau ntawm lub server siv los txuas rau IRC, xws li

    tham.freenode.net

  • Chaw nres nkoj: Feem ntau, qhov no yog 6667, tab sis yog koj tsis paub tseeb, txheeb xyuas koj tus kheej IRC tus neeg siv khoom lossis lub vev xaib lub vev xaib.
  • Npe Npe: Lub npe menyuam yaus koj tus bot yuav tsum siv. Nco ntsoov qee tus cim tshwj xeeb feem ntau tsis raug tso cai (@#! ~).
  • Yog leejtwg: Tus lej cim tshwm tom qab lub npe menyuam yaus thaum ib tus neeg ua WHOIS zoo li no:

    npe! ID@hostname

  • GECOS: Daim teb no feem ntau tuav tus neeg siv lub npe tiag tiag lossis cov lus piav qhia dav dav ntawm bot tab sis koj tuaj yeem tso txhua yam koj xav tau nyob ntawd.
  • Channel: Koj ib txwm xav kom koj tus bot nyob rau hauv ib lossis ntau txoj hauv kev. Ntawm ntau lub network, cov no tau ua ntej nrog '#' tab sis nws yuav yog lwm yam.
Tsim ib qho IRC Bot Kauj Ruam 5
Tsim ib qho IRC Bot Kauj Ruam 5

Kauj Ruam 2. Pib qhov kev teeb tsa hauv koj tsab ntawv

Txoj hauv kev yooj yim tshaj plaws los ua qhov no yog los ntawm kev sau npe ob peb qhov hloov pauv raws li cov npe teeb tsa saum toj no. Koj kuj tseem tuaj yeem khaws lawv hauv cov ntawv teeb tsa thiab cais lawv tawm, tab sis rau tam sim no peb yuav cia li lo nrog qhov tsis xav tau.

Tsim ib qho IRC Bot Kauj Ruam 6
Tsim ib qho IRC Bot Kauj Ruam 6

Kauj Ruam 3. Txuas rau lub network

Txhawm rau ua qhov no, koj yuav tsum qhib lub qhov (socket) rau lub server ntawm qhov chaw nres nkoj tshwj xeeb. Koj yuav tsum ntxiv qee qhov yuam kev tuav txoj cai hauv ntu no yog tias qhov kev sib txuas tsis ua tiav vim li cas. Hauv qhov no, PHP muab qee yam haujlwm zoo rau peb los daws qhov ua tsis raug.

Tsim ib qho IRC Bot Kauj Ruam 7
Tsim ib qho IRC Bot Kauj Ruam 7

Kauj Ruam 4. Sau koj tus bot

Qhov no txhais tau tias muab koj lub npe menyuam yaus, tus lej, thiab GECOS rau lub server, tsis sau npe nrog NickServ. Txhawm rau ua qhov no, tsuas yog sau NICK thiab USER cov lus txib rau tus neeg rau zaub mov, tom qab ntawv xa rov qab thiab kab ntawv tshiab. Nws yog ib qho tseem ceeb uas koj yuav tsum ua raws nraim li tau qhia, vim tias yog li ntawd nws tau teev tseg hauv RFC1459, qhov tshwj xeeb rau IRC raws tu qauv.

Nco ntsoov tias qhov nruab nrab ob qhov ntsuas (qhov no, * thiab 8) yuav tsum tau teev tseg, tab sis lawv tsis quav ntsej los ntawm tus neeg rau zaub mov. Ob qho no tsuas yog siv ntawm cov servers sib txuas, tsis yog los ntawm cov neeg siv txuas ncaj qha

Tsim ib qho IRC Bot Kauj Ruam 8
Tsim ib qho IRC Bot Kauj Ruam 8

Kauj Ruam 5. Khaws cov ntaub ntawv los ntawm lub qhov (socket) siv lub voj

Yog tias koj tsis tau siv lub voj, koj cov ntawv yuav raug txiav tam sim thiab tus bot yuav tsis siv tau. Txhawm rau kom muaj kev sib txuas, koj yuav tsum nqa cov ntaub ntawv los ntawm tus neeg rau zaub mov, kos rau ib qho kev nkag mus rau hauv kwj uas koj xav tau, thiab teb rau nws yog li. Ntawm no, peb tab tom khaws cov ntaub ntawv siv socket_read () txhawm rau khaws cov ntaub ntawv muaj rau peb. Yog tias muaj, peb tseem ua txhua yam hauv lub voj. Nws yuav pab tau kom tseem tso tawm cov ntaub ntawv nyoos rau lub console kom koj tuaj yeem pom dab tsi tshwm sim los ntawm bot qhov kev xav.

Tsim ib qho IRC Bot Kauj Ruam 9
Tsim ib qho IRC Bot Kauj Ruam 9

Kauj Ruam 6. Sau tus ping handler

Qhov no tseem ceeb. Yog tias koj tsis teb rau pings raws sijhawm, tus neeg rau zaub mov yuav txuas koj. Cia peb saib xyuas qhov ntawd ua ntej. Pings zoo li qhov no thaum xa los ntawm server:

PING: rajaniemi.freenode.net

. Tus neeg rau zaub mov tsis tas yuav sau nws lub npe tom qab ':', nws tuaj yeem muab txhua yam nws xav tau. Koj * yuav tsum * rov ua raws nraim li qhov server hais, tshwj tsis yog siv PONG.

Tsim ib qho IRC Bot Kauj Ruam 10
Tsim ib qho IRC Bot Kauj Ruam 10

Kauj Ruam 7. Koom nrog koj cov channel

Okay, yog li peb muaj tus bot uas txuas rau lub network thiab teb rau pings, tab sis lwm yam tsis ua dab tsi. Kom tib neeg pom thiab siv koj tus bot, nws yuav tsum nyob hauv ib qho channel (txwv tsis pub koj yuav tsum tau qhia nws kom teb rau cov lus ntiag tug).

  • Txhawm rau ua qhov no, peb yuav tshuaj xyuas tus lej server tus lej 376 lossis 422. 376 txhais tau tias MOTD (xov ntawm hnub) ua tiav. 422 txhais tau tias tsis muaj MOTD xa. Qhov MOTD tsuas yog qee yam uas tus neeg rau zaub mov xa thaum koj txuas, tab sis nws yog qhov ntsuas zoo rau thaum peb tuaj yeem pib koom nrog cov channel.
  • Koj yuav tsum tau tshaj tawm JOIN cov lus txib. Cov lus txib no tuaj yeem ua raws los ntawm ib lossis ntau txoj kev sib cais los ntawm tus lej.
  • Daim ntawv ceeb toom tias cov ntaub ntawv tus neeg rau zaub mov xa tuaj tau yooj yim delimited los ntawm qhov chaw. Txoj kev no peb tuaj yeem faib cov ntaub ntawv thiab siv nws siv qhov ntsuas ntsuas.
Tsim ib qho IRC Bot Kauj Ruam 11
Tsim ib qho IRC Bot Kauj Ruam 11

Kauj Ruam 8. Teb rau cov lus hauv channel

Tam sim no rau qhov lom zem. Koj tus bot tau koom nrog cov channel, yog li tam sim no koj tuaj yeem siv nws rau yam koj xav tau. Cia peb tsim ib qho piv txwv hais kom ua @moo.

  • Nco tseg qhov offset qhov twg cov lus pib (qhov no siv rau ob txoj hauv kev thiab cov lus ntiag tug). Nws ib txwm nyob hauv tib qho chaw.
  • Koj tuaj yeem lis cov lus txib nrog thaj chaw hauv lawv los ntawm kev sib faib cov ntaub ntawv tawg ua ke ($ d). Qhov ntawd dhau qhov uas tau piav qhia hauv kab lus no.
  • Yog tias lub hom phiaj yog channel (xws li #botters-test), tom qab ntawd koj teb rau qhov ntawd. Yog tias nws yog cov lus ntiag tug, qhov no yuav yog koj lub npe bot! Tom qab ntawd koj yuav tsum teb siv tus xa lub npe menyuam yaus, tsis yog koj li (txwv tsis pub koj yuav tham nrog koj tus kheej, thiab qhov ntawd tsuas yog ua dag xwb).
Tsim ib qho IRC Bot Kauj Ruam 12
Tsim ib qho IRC Bot Kauj Ruam 12

Kauj Ruam 9. Txuas koj tus bot

Koj tuaj yeem ntxiv ntau yam tshiab uas siv los ntawm kev ua haujlwm saum toj no. Muaj ntau ntau lwm cov lus txib uas tuaj yeem tshaj tawm rau IRC network, xws li kev tswj hwm ops, ncaws thiab txwv, teeb tsa lub ncauj lus, ntawm ntau lwm yam ntxiv.

Lub tswv yim

  • Koj tuaj yeem tsim qhov tshwm sim ntawm "/kuv" cov lus txib los ntawm ua ntej koj cov lus zoo li no:

    • PRIVMSG #channel: / 001ACTION ntawv ntawm no / 001.
    • 001 txhais tau tias ASCII tus cim 1 thiab yuav raug txhais raws li hauv kab lus ob kab lus PHP. Xwb, koj tuaj yeem siv

      qhr (1)

    • sab nraum txoj hlua.
  • Cov xim tuaj yeem tsim tawm hauv kab lus los ntawm ua ntej "\ 003" (ASCII code 3) ua raws tus lej rau xim. 0 = dawb, 1 = dub, 2 = xiav, 3 = ntsuab, 4 = liab […] Saib mIRC nplooj ntawv rau xim ntxiv.
  • Raws li qhov muaj txiaj ntsig, tau txais kev pom zoo los ntawm cov tswv channel thiab IRC cov neeg ua haujlwm ua ntej nqa koj tus bot online. Tsis yog txhua lub network thiab cov channel muaj txoj cai txais tos rau bots, txawm tias coj tus yam ntxwv zoo.
  • Qee IRC daemons mus dhau qhov tshwj xeeb ntawm cov txheej txheem thiab siv lwm cov yam ntxwv. Yog tias koj tab tom npaj nws rau lub network tshwj xeeb, koj tuaj yeem siv tau cov yam ntxwv no yog tias koj paub txog lawv cov txheej txheem. Yog tias koj xav kom koj tus bot raug xa mus rau ntau lub network, txawm li cas los xij, sim ua kom nws nyob rau hauv RFC.

Pom zoo: