Ինչպես մշակել IRC բոտ. 12 քայլ (նկարներով)

Բովանդակություն:

Ինչպես մշակել IRC բոտ. 12 քայլ (նկարներով)
Ինչպես մշակել IRC բոտ. 12 քայլ (նկարներով)

Video: Ինչպես մշակել IRC բոտ. 12 քայլ (նկարներով)

Video: Ինչպես մշակել IRC բոտ. 12 քայլ (նկարներով)
Video: 10 ԳԱՂՏՆԻՔ Whatsapp _Ի ՄԱՍԻՆ Nver 2024, Ապրիլ
Anonim

Եթե դուք եղել եք ինտերնետային փոխանցումային զրուցարանում (IRC), ապա հավանական է, որ ինչ -որ պահի հանդիպել եք բոտի: Բոտերը անկախ ծրագրեր կամ սցենարներ են, որոնք ցանցին միանում են այնպես, ինչպես մարդն է: Նրանք կարող են ծրագրավորվել ՝ արձագանքելու օգտվողի հրամաններին կամ նույնիսկ զրուցելու համար: Այս ուղեցույցում կարող եք գտնել, թե որոնք են IRC բոտ ստեղծելու ձեր տարբերակները, ինչպես նաև այն, թե ինչպես կարելի է զրոյից կառուցել:

Քայլեր

Մեթոդ 1 2 -ից. Ընտրանքների գնահատում

Մշակել IRC Bot 1 -ին քայլ
Մշակել IRC Bot 1 -ին քայլ

Քայլ 1. Մտածեք հաճախորդի սցենարի տեղադրման մասին:

Երբեմն պարզապես ուզում ես, որ կատարվի մի պարզ առաջադրանք և չես ուզում, որ դա լինի անկախ ծրագիր: Այդ դեպքում կարող եք սցենար կցել IRC հաճախորդին: Սա բավականին տարածված է mIRC- ի հետ, որն ունի հզոր սցենարային շարժիչ և մատչելի սցենարների լայն տեսականի: Սա ամենահեշտ տարբերակն է և բարձր խորհուրդ է տրվում, եթե չունեք ծրագրավորման մեծ կամ որևէ փորձ: Այս ուղեցույցի մնացած մասի համար հրահանգները պահանջում են համակարգչային ծրագրավորման որոշակի գիտելիքներ:

Մշակեք IRC Bot 2 -րդ քայլ
Մշակեք IRC Bot 2 -րդ քայլ

Քայլ 2. Մտածեք ձեր բոտի համար գոյություն ունեցող կոդերի բազայի մասին:

Գոյություն ունեն բազմաթիվ բաց կոդ և անվճար ծրագրեր, որոնք կարող են օգնել ձեզ արագ ստեղծել ձեր սեփական հարմարեցված բոտը: Նման օրինակներից է Eggdrop- ը, IRC- ի ամենահին բոտը, որը դեռ պահպանվում է:

Մշակել IRC Bot 3 -րդ քայլ
Մշակել IRC Bot 3 -րդ քայլ

Քայլ 3. Մտածեք ձեր սեփական բոտը գրելու մասին:

IRC- ի առաջադեմ օգտվողների և ծրագրավորողների համար, ովքեր արդեն գիտեն իրենց ճանապարհը ծրագրավորման լեզվի շուրջ, սա հիանալի տարբերակ է: Դուք կարող եք օգտագործել գրեթե ցանկացած ցանկալի լեզու, քանի դեռ այն ունի վարդակից աջակցություն, բայց հանրաճանաչները ՝ Python, Lua, PHP, C և Perl: Եթե դուք չգիտեք դրանցից որևէ մեկը, բայց գիտեք մեկ այլ լեզու, դա խնդիր չէ: Սովորաբար համացանցում կարող եք օրինակներ գտնել ձեր ուզած ցանկացած լեզվով: Այս հոդվածի համար մենք ցույց կտանք PHP- ի օգտագործումը: PHP- ից օգտվելու համար ձեզ հարկավոր է տեղադրել PHP-CLI ձեր համակարգչում կամ սերվերում:

  • PHP- ն կարելի է ներբեռնել php.net- ից
  • PHP սցենարները կարող են կատարվել հրամանի տողից: Լրացուցիչ տեղեկությունների և PHP- ի օգտագործման համար օգնության համար տե՛ս այս PHP ձեռնարկի էջը:

Մեթոդ 2 -ից 2 -ը. Մշակեք ձեր սեփական բոտը

Մշակել IRC Bot 4 -րդ քայլ
Մշակել IRC Bot 4 -րդ քայլ

Քայլ 1. Հավաքեք կապի մանրամասները:

Successfullyանցին հաջողությամբ միանալու համար ձեզ հարկավոր է ստանալ հետևյալ տեղեկությունները.

  • Սերվեր. IRC- ին միանալու համար օգտագործվող սերվերի տիրույթի անունը, օրինակ

    chat.freenode.net

  • Նավահանգիստ Շատ դեպքերում սա 6667 է, բայց եթե վստահ չեք, ստուգեք ձեր սեփական IRC հաճախորդը կամ ցանցի կայքը:
  • Մականուն: Ձեր բոտը պետք է օգտագործի մականունը: Հիշեք, որ որոշ հատուկ նիշեր սովորաբար չեն թույլատրվում (@#! ~):
  • Նույնականացում: Նույն դաշտը հայտնվում է մականունից հետո, երբ ինչ -որ մեկը կատարում է այսպիսի WHOIS:

    մականուն! ident@hostname անունը

  • GECOS: Այս դաշտը սովորաբար պարունակում է օգտագործողի իրական անունը կամ բոտի ընդհանուր նկարագրությունը, բայց այնտեղ կարող եք տեղադրել այն, ինչ ցանկանում եք:
  • Ալիք Սովորաբար ցանկանում եք, որ ձեր բոտը ներկա լինի մեկ կամ մի քանի ալիքներում: Networksանցերի մեծ մասում դրանք նախածանցված են «#» - ով, բայց դա կարող է այլ բան լինել:
Մշակել IRC Bot 5 -րդ քայլ
Մշակել IRC Bot 5 -րդ քայլ

Քայլ 2. Նախագծեք ձեր սցենարի կազմաձևումը:

Դա անելու ամենահիմնական միջոցը մի քանի փոփոխականների անունն է ՝ ըստ վերը նշված կազմաձևման անունների: Դուք կարող եք դրանք պահել նաև կազմաձևման ֆայլում և վերլուծել դրանք, բայց այս պահին մենք պարզապես կպահպանենք բացարձակ անհրաժեշտությունը:

Մշակել IRC Bot 6 -րդ քայլ
Մշակել IRC Bot 6 -րդ քայլ

Քայլ 3. Միացեք ցանցին:

Դա անելու համար դուք պետք է բացեք վարդակից սերվերին նշված նավահանգստում: Այս մասում պետք է նաև ավելացնել սխալի մշակման ծածկագիր, եթե կապը որևէ պատճառով խափանվի: Այս դեպքում PHP- ն մեզ տալիս է որոշ կոկիկ գործառույթներ `սխալը արդյունավետ կերպով լուծելու համար:

Մշակեք IRC Bot 7 -րդ քայլ
Մշակեք IRC Bot 7 -րդ քայլ

Քայլ 4. Գրանցեք ձեր բոտը:

Սա նշանակում է մատակարարել ձեր մականունը, նույնականացումը և GECOS- ը սերվերին, այլ ոչ թե գրանցվել NickServ- ում: Դա անելու համար պարզապես գրեք NICK և USER հրամանները սերվերին, որին հաջորդում է վագոնի վերադարձը և նոր գիծը: Պարտադիր է, որ դուք դա անեք ճիշտ այնպես, ինչպես ցույց է տրված, քանի որ այդպես է նշված RFC1459- ում ՝ IRC արձանագրության բնութագրում:

Նկատի ունեցեք, որ միջին երկու պարամետրերը (այս դեպքում * և 8) պետք է նշվեն, սակայն դրանք անտեսվում են սերվերի կողմից: Այդ երկուսը օգտագործվում են միայն կապված սերվերների միջև, այլ ոչ թե ուղղակիորեն միացնող հաճախորդի կողմից:

Մշակեք IRC Bot 8 -րդ քայլ
Մշակեք IRC Bot 8 -րդ քայլ

Քայլ 5. Շարունակեք տվյալների հավաքումը վարդակից ՝ օգտագործելով օղակ:

Եթե դուք չօգտագործեք օղակ, ձեր սցենարը անմիջապես կավարտվի, և բոտը հիմնականում անօգուտ կլինի: Կապի մեջ մնալու համար դուք պետք է սերվերից վերցնեք տվյալներ, ստուգեք ձեր ուզած հոսքի ցանկացած մուտքագրում և արձագանքեք դրան, եթե այդպես է: Այստեղ մենք socket_read () - ի միջոցով վերցնում ենք տվյալները ՝ մեզ հասանելի ցանկացած տվյալներ գրավելու համար: Եթե կա, մենք շարունակում ենք անել այն, ինչ մեզ սպասում է: Կարող է օգտակար լինել նաև հումքի տվյալները մխիթարել, որպեսզի տեսնեք, թե ինչ է կատարվում բոտի տեսանկյունից:

Մշակեք IRC Bot 9 -րդ քայլ
Մշակեք IRC Bot 9 -րդ քայլ

Քայլ 6. Գրեք պինգ -վարիչ:

Սա կարեւոր է: Եթե դուք ժամանակին չպատասխանեք պինգներին, սերվերը ձեզ կտրի կապը: Եկեք առաջին հերթին հոգ տանք դրա մասին: Pings- ն այս տեսքն ունի սերվերից ուղարկվելիս.

PING ՝ rajaniemi.freenode.net

. Պարտադիր չէ, որ սերվերը իր անունը դնի ':' - ի վրա, այն կարող է մատակարարել այն, ինչ ցանկանում է: Դուք * պետք է * կրկնեք սերվերի ասածը ՝ բացառությամբ PONG- ի օգտագործման:

Մշակել IRC Bot 10 -րդ քայլ
Մշակել IRC Bot 10 -րդ քայլ

Քայլ 7. Միացեք ձեր ալիքներին:

Լավ, ուրեմն մենք ունենք բոտ, որը միանում է ցանցին և արձագանքում է պինգներին, բայց հակառակ դեպքում ոչինչ չի անում: Որպեսզի մարդիկ տեսնեն և օգտագործեն ձեր բոտը, այն պետք է լինի ալիքում (այլապես պետք է ասեք, որ պատասխանի անձնական հաղորդագրություններին):

  • Դա անելու համար մենք կստուգենք սերվերի կարգավիճակի կոդերը 376 կամ 422. 376 -ը նշանակում է MOTD (օրվա հաղորդագրություն) ավարտված: 422 նշանակում է, որ ուղարկելու համար ոչ մի MOTD չի եղել: Այդ MOTD- ն ընդամենը այն է, ինչ սերվերն ուղարկում է միանալիս, բայց դա լավ ցուցանիշ է այն ժամանակների համար, երբ մենք կարող ենք սկսել միանալ ալիքներին:
  • Ձեզ հարկավոր է թողնել JOIN հրաման: Այս հրամանին կարող են հաջորդել մեկ կամ մի քանի ալիքներ, որոնք բաժանված են ստորակետով:
  • Ուշադրություն դարձրեք, որ սերվերի ուղարկած տվյալները հարմար սահմանազատված են բացատներով: Այս կերպ մենք կարող ենք տրոհել տվյալները և հղել դրանք ՝ օգտագործելով զանգվածների ինդեքս:
Մշակել IRC Bot 11 -րդ քայլ
Մշակել IRC Bot 11 -րդ քայլ

Քայլ 8. Արձագանքեք ալիքի հաղորդագրություններին:

Հիմա զվարճալի մասի համար: Ձեր բոտը միացել է ալիքին, այնպես որ այժմ կարող եք այն օգտագործել այն, ինչ ցանկանում եք: Եկեք ստեղծենք օրինակ հրաման @moo անունով:

  • Ուշադրություն դարձրեք, թե որտեղից են սկսվում հաղորդագրությունները (սա վերաբերում է ինչպես ալիքներին, այնպես էլ մասնավոր հաղորդագրություններին): Այն միշտ նույն տեղում է:
  • Դուք կարող եք կարգավորել հրամաններ ՝ դրանց մեջ բացատներով ՝ իրար միացնելով կուտակված տվյալները ($ d): Դա դուրս է այս հոդվածի շրջանակներից:
  • Եթե թիրախը ալիք է (օրինակ ՝ #botters-test), ապա դրան պատասխանում եք: Եթե դա անձնական հաղորդագրություն է, ապա այս բիթը կլինի ձեր բոտի մականունը: Դրանից հետո դուք պետք է պատասխանեք ՝ ուղարկողի մականունով, այլ ոչ թե ձեր (հակառակ դեպքում դուք ինքներդ ձեզ հետ կխոսեիք, և դա պարզապես հիմարություն է):
Մշակել IRC Bot 12 -րդ քայլ
Մշակել IRC Bot 12 -րդ քայլ

Քայլ 9. Երկարացրեք ձեր բոտը:

Դուք կարող եք ավելացնել բազմաթիվ նոր հնարավորություններ ՝ օգտագործելով վերը նշված իրականացումը: Կան բազմաթիվ այլ հրամաններ, որոնք կարող են տրվել IRC ցանցին, ինչպիսիք են ՝ գործառնությունների կառավարումը, ոտքերով հարվածելը և արգելելը, թեման դնելը, ի թիվս այլ գործառույթների:

Խորհուրդներ

  • Դուք կարող եք արտադրել «/me» հրամանի արդյունքը ՝ ձեր հաղորդագրությունները նախածանցելով հետևյալ կերպ.

    • PRIVMSG #ալիք. / 001 ԱԿTԻԱ տեքստը այստեղ / 001:
    • 001 նշանակում է ASCII նիշ 1 և որպես այդպիսին մեկնաբանվելու է կրկնակի մեջբերված PHP տողում: Այլապես, կարող եք օգտագործել

      chr (1)

    • տողից դուրս:
  • Գույները կարող են արտադրվել հաղորդագրության մեջ `« / 003 »(ASCII կոդ 3) նախածանցով, որին հաջորդում է գույնի համարը: 0 = սպիտակ, 1 = սև, 2 = կապույտ, 3 = կանաչ, 4 = կարմիր […] Լրացուցիչ գույների համար տես mIRC- ի էջը:
  • Որպես քաղաքավարություն ՝ ձեր բոտը առցանց մտցնելուց առաջ ստացեք ալիքի սեփականատերերի և IRC օպերատորների համաձայնությունը: Ոչ բոլոր ցանցերն ու ալիքները ողջունելի քաղաքականություն ունեն բոտերի նկատմամբ, նույնիսկ լավ վարքագծի դեպքում:
  • Որոշ IRC դևեր դուրս են գալիս արձանագրության բնութագրերից և իրականացնում այլ հնարավորություններ: Եթե դուք այն պատրաստում եք որոշակի ցանցի համար, ապա, անշուշտ, կարող եք օգտվել այդ հնարավորություններից, եթե իմանաք դրանց արձանագրության մասին: Եթե ցանկանում եք, որ ձեր բոտը տեղակայվի մի քանի ցանցերում, այնուամենայնիվ, փորձեք այն պահել RFC- ում եղածի վրա:

Խորհուրդ ենք տալիս: