Hvordan lage en IRC Bot fra grunnen av i Python

IRC er en tekst chat program først utviklet i 1988. Mens datateknologi har lenge gått IRC etter, mange IRC-servere finnes med hundrevis av brukere diskutere emner og dele informasjon. En måte at brukerne koble seg til IRC er i form av "bots" som leser tekst fra en IRC-kanal og utføre oppgaver basert på hva den leser. En bot kan svare på visse meldinger som inneholder bestemte søkeord, eller det kan rett og slett sitte stille og lagre samtaler til fil. En måte å skape en IRC bot er gjennom programmeringsspråket Python, og bruker sin "socket" bibliotek for Internett-kommunikasjon.

Bruksanvisning

1 Importer kontakten biblioteket og sette opp tilkoblings variabler. Forutsatt at du allerede ha foretrukket IRC legitimasjon for boten, vil Python IRC bot bruke disse legitimasjon for å logge inn med "sockets" bibliotek. Følgende eksempel viser hvordan du legger ut variabler som skal brukes til påloggingsinformasjon, inkludert verdier for IRC-serveren, tilkoblingsport, og Bot brukerinformasjon:

! / Usr / bin / python

import socket

import streng

host = 'example.host.org'

port = 6667

nick = 'pythonbot3000'

ident = 'PyBot'

navnet til brukeren = 'Bobby'

lese = ''

2 Bruk "socket" for å koble til serveren. Forutsatt at serveren er "example.host.org," bruke en socket objekt for å opprette forbindelsen. I dette eksemplet oppretter kontakten objekt, "irc_sock," og bruke den til å koble til serveren og sende logginformasjon:

irc_sock = socket.socket ()

irc_sock.connect (host, port)

irc_sock.send ( 'Nick' + nick + '\ r \ n')

irc_sock.send ( «bruker» + ident + '' + host + 'bla: "+ navnet til brukeren +' n ')

3 Koble til en kanal og lese tekst. Hvis du vil ha boten bli med kanalen "Eksempel" og deretter bruke "finne" -metoden for en streng samlet fra IRC-serveren for å sjekke status for forbindelsen. Delta i en kanal og begynne å lese og skrive meldinger, som vist i følgende kode:

mens 1: // uendelig løkke å holde samle tekst

lese = irc_sock.recv (500) // får tekstlinje

print lese // skriver den

hvis read.find ( 'Generic Intro Message') = -1: // hvis serveren intro melding, delta i en kanal

irc_sock.send ( 'BLI' + eksempel + '\ r \ n')