isit?

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”)