Mar 28
Class based irc bot in python
Works only on SSL. Connects with a random nick prefixed with SAM
import socket, ssl, time, random, string
class bot:
def __init__(self, host, port, chan):
self.irchost=host
self.ircport=port
self.ircnick=”SAM” + “”.join(random.sample(string.letters+string.digits, 6))
self.ircchan=chan
self.irc = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
self.irc.connect ((self.irchost, self.ircport))
self.sslirc = ssl.wrap_socket(self.irc)
self.sslirc.write(‘NICK ‘+self.ircnick+’\r\n’)
self.sslirc.write(‘USER ‘+self.ircnick+’ ‘+self.ircnick+’ ‘+self.ircnick+’ :’+self.ircnick+’\r\n’)
time.sleep(1)
while 1:
self.ircdata = self.sslirc.read()
#print(self.ircdata)
if “MOTD File is missing” in self.ircdata: #?
#time.sleep(1)
self.sslirc.write(‘JOIN ‘+self.ircchan+’\r\n’)
if self.ircdata.find(‘PING’) != -1: #handle pings
self.sslirc.write(‘PONG :’+self.ircdata[6:]+’\r\n’)
If you’d like to add a “command” just use
if “!tits” in self.ircdata:
self.sslirc.write(‘PRIVMSG ‘+self.ircchan+’ :tits!\r\n’)
Save in a seperate file and import it. To call it just do:
b = bot(“irc.host.com”,6697,”#channel”)