IRC ботын қалай дамыту керек: 12 қадам (суреттермен)

Мазмұны:

IRC ботын қалай дамыту керек: 12 қадам (суреттермен)
IRC ботын қалай дамыту керек: 12 қадам (суреттермен)

Бейне: IRC ботын қалай дамыту керек: 12 қадам (суреттермен)

Бейне: IRC ботын қалай дамыту керек: 12 қадам (суреттермен)
Бейне: #Донор Қазірден бастап барлық кинотеатрларда! 2024, Наурыз
Anonim

Егер сіз Интернет -релелік чатта (IRC) болсаңыз, сіз бір сәтте ботқа тап болуыңыз мүмкін. Боттар - бұл адамдар қосатындай желіге қосылатын тәуелсіз бағдарламалар немесе сценарийлер. Оларды қолданушылардың командаларына жауап беруге немесе тіпті сөйлесуге бағдарламалауға болады. Бұл нұсқаулықта сіз IRC ботын құрудың қандай нұсқаларын таба аласыз, сонымен қатар оны нөлден қалай құруға болады.

Қадамдар

2 әдіс 1: опцияларды бағалау

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. Қосылу мәліметтерін жинаңыз

Желіге сәтті қосылу үшін келесі ақпаратты алу қажет.

  • Сервер: IRC -ке қосылу үшін пайдаланылатын сервердің домендік атауы, мысалы

    chat.freenode.net

  • Порт: Көп жағдайда бұл 6667, бірақ егер сенімді болмасаңыз, өзіңіздің IRC клиентіңізді немесе желінің веб -сайтын тексеріңіз.
  • Лақап ат: Сіздің ботыңыз қолданатын лақап ат. Есіңізде болсын, кейбір арнайы таңбаларға әдетте рұқсат етілмейді (@#! ~).
  • Сәйкес: Идентификатор өрісі лақап аттан кейін біреу WHOIS орындағанда пайда болады:

    лақап! ident@хост аты

  • GECOS: Бұл өрісте әдетте пайдаланушының нақты аты немесе боттың жалпы сипаттамасы болады, бірақ сіз оған қалағаныңызды енгізе аласыз.
  • Арна: Сіз әдетте ботыңыздың бір немесе бірнеше арнада болғанын қалайсыз. Көптеген желілерде олар «#» префиксімен жазылады, бірақ бұл басқа нәрсе болуы мүмкін.
IRC Bot 5 -қадамын жасаңыз
IRC Bot 5 -қадамын жасаңыз

Қадам 2. Сценарийдегі конфигурацияны инициализациялаңыз

Мұны істеудің ең негізгі әдісі - жоғарыдағы конфигурация атауларына сәйкес бірнеше айнымалыларды атау. Сіз оларды конфигурация файлында сақтай аласыз және оларды талдай аласыз, бірақ дәл қазір біз абсолютті қажеттіліктерді сақтаймыз.

IRC Bot әзірлеу 6 -қадам
IRC Bot әзірлеу 6 -қадам

Қадам 3. Желіге қосылыңыз

Мұны істеу үшін сізге көрсетілген порттағы серверге розетка ашу керек. Сонымен қатар, қандай да бір себептермен байланыс үзілген жағдайда, қатені өңдеу кодын қосу керек. Бұл жағдайда PHP қатені тиімді шешу үшін бізге бірнеше таза функцияларды ұсынады.

IRC Bot әзірлеу 7 -қадам
IRC Bot әзірлеу 7 -қадам

Қадам 4. Ботыңызды тіркеңіз

Бұл NickServ -те тіркелмей, лақап атыңызды, идентификаторыңызды және GECOS -ты серверге беруді білдіреді. Мұны істеу үшін серверге NICK және USER пәрмендерін жазыңыз, содан кейін каретка қайтару және жаңа жол. Мұны дәл көрсетілгендей жасау өте маңызды, себебі ол RFC1459 -да IRC хаттамасының спецификациясында дәл осылай көрсетілген.

Орташа екі параметрді (бұл жағдайда * және 8) көрсету керек екенін ескеріңіз, бірақ оларды сервер елемейді. Бұл екеуі тікелей байланысатын клиент арасында емес, тек байланысқан серверлер арасында қолданылады

IRC Bot 8 -қадамын жасаңыз
IRC Bot 8 -қадамын жасаңыз

Қадам 5. Циклды қолданып деректерді розеткадан алуды жалғастырыңыз

Егер сіз циклды пайдаланбасаңыз, сіздің сценарийіңіз бірден тоқтатылады және бот негізінен пайдасыз болады. Байланысты жалғастыру үшін сіз серверден деректерді алуыңыз керек, ағымдағы кез келген кірісті тексеріп, қажет болса оған жауап беруіңіз керек. Мұнда біз кез келген деректерді алу үшін socket_read () көмегімен деректерді аламыз. Егер бар болса, біз циклда не болса соны жасай береміз. Шикі деректерді консольге шығару пайдалы болуы мүмкін, осылайша сіз бот тұрғысынан не болып жатқанын көре аласыз.

IRC Bot 9 -қадамын жасаңыз
IRC Bot 9 -қадамын жасаңыз

Қадам 6. Пинг өңдегішін жазыңыз

Бұл маңызды. Егер сіз пингке уақытында жауап бермесеңіз, сервер сізді ажыратады. Алдымен осы мәселеге көңіл бөлейік. Пингтер серверден жіберілген кезде келесідей болады:

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ӘРЕКЕТ мәтіні осында / 001.
    • 001 ASCII 1 символын білдіреді және PHP қос тырнақшасында осылай түсіндіріледі. Немесе сіз пайдалана аласыз

      chr (1)

    • жіптен тыс.
  • Түстерді хабарламада «\ 003» префиксі (ASCII коды 3), содан кейін түске сан қою арқылы жасауға болады. 0 = ақ, 1 = қара, 2 = көк, 3 = жасыл, 4 = қызыл […]. Қосымша түстерді білу үшін mIRC бетін қараңыз.
  • Сыпайылық ретінде, сіздің ботыңызды желіге қоспас бұрын, канал иелері мен IRC операторларының келісімін алыңыз. Барлық желілер мен арналарда боттарға, тіпті жақсы тәрбиеленушілерге де қолайлы саясат жоқ.
  • Кейбір IRC демондары хаттаманың сипаттамасынан асып түседі және басқа мүмкіндіктерді жүзеге асырады. Егер сіз оны белгілі бір желіге дайындайтын болсаңыз, егер сіз олардың хаттамасы туралы білсеңіз, бұл мүмкіндіктерді пайдалана аласыз. Егер сіз өзіңіздің ботыңызды бірнеше желіде қолданғыңыз келсе, оны RFC -те сақтауға тырысыңыз.

Ұсынылған: