import logging from threading import Event import mh_python import time import pyPgSQL.PgSQL from omegle import OmegleChat class MegahalBot(OmegleChat): def __init__(self,disconnect_event,name,ma_host="omegle.com",color=0): self.disconnect_event = disconnect_event self.name=name self.color = 0 OmegleChat.__init__(self,name="Megahal",host=ma_host) self.idlecount = 0 def c(self,str,bold=False): if bold: return "\033[1m\033[%sm%s\033[0m\033[0m" %(self.color, str) else: return "\033[%sm%s\033[0m" %(self.color, str) def respond(self,message): r=mh_python.doreply(message) print self.c("%s [MSG] %s: %s" %(time.strftime("%H:%M:%S"), self.name, r),bold=True) self.send(r) def on_idle(self): self.idlecount += 1 if self.idlecount > 8: self.logger.info("Idle > 8. disconnect()") self.disconnect() else: self.logger.info("Idle count %s/8" % self.idlecount) def on_message(self,message): self.idlecount = 0 print self.c("%s [MSG] %s: %s" %(time.strftime("%H:%M:%S"), "Stranger", message),bold=True) self.respond(message) def on_connect(self): print self.c("%s [EVT] %s Connection confirmed" % (time.strftime("%H:%M:%S"), self.name)) self.send(u"Hi %s!" % self.name) def on_disconnect(self): print self.c("%s [EVT] %s disconnect" % (time.strftime("%H:%M:%S"), self.name)) self.disconnect_event.set() if __name__ == "__main__": colors = {"default":0, "black":30, "red":31, "green":32, "yellow":33, "blue":34,"magenta":35, "cyan":36, "white":37, "black":38, "black":39} mh_python.initbrain() conn = pyPgSQL.PgSQL.connect("") cur = conn.cursor() cur.execute("SELECT message FROM omegle_messages") messages = cur.fetchall() c=0 for message in messages: c+=1 if c%20==0: print "%s%s/%s" % ("\033[2K\033[E",c,len(messages)), #XXX pass massage[0] to mh and end with a fucked up python mh_python.learn("%s " % (message[0])) print "" cur.close() conn.close() logging.basicConfig(level=logging.DEBUG) print "press ctrl-c to abort" event = Event() #bot=MegahalBot(event,"A",ma_host="localhost:8082",color=colors['red']) bot=MegahalBot(event,"A",color=colors['red']) bot.start() try: while True: event.wait(0.5) if event.isSet(): print "partner" break except KeyboardInterrupt: print "CTRL-C pressed, exiting" if bot.is_connected: bot.disconnect()