def __init__(self, server, port, nick, channel): self.botname = nick self.channel = channel IRCClient.__init__(self, server, port) self.connect(nick, "No, I am not a bot!") self.join(channel) self.previousEntryNode = None self.lastEntryNode = None UttererNode.__decay = 5 SentimentNode.__decay = 5 ExpressionNode.__decay = 20 SentenceNode.__decay = 25 TokenNode.__decay = 20 self.ector = Ector(nick)
class ircECTOR(LogAllMixin, IRCClient): def __init__(self, server, port, nick, channel): self.botname = nick self.channel = channel IRCClient.__init__(self, server, port) self.connect(nick, "No, I am not a bot!") self.join(channel) self.previousEntryNode = None self.lastEntryNode = None UttererNode.__decay = 5 SentimentNode.__decay = 5 ExpressionNode.__decay = 20 SentenceNode.__decay = 25 TokenNode.__decay = 20 self.ector = Ector(nick) def handle_say(self, source, to, message): nick = getnick(source) ##message = message.decode('iso-8859-1') if to == self.channel: #self.ector.setUser(nick) self.lastEntryNode = self.ector.addEntry(message) if self.previousEntryNode: self.ector.cn.addLink(self.previousEntryNode, self.lastEntryNode) else: self.lastEntryNode.beg += 1 self.ector.cleanState() self.ector.propagate(2) replyNode = self.ector.getActivatedSentenceNode() reply = replyNode.getSymbol() reply = reply.replace("@bot@", nick) reply = reply.replace("@user@", self.botname) self.previousEntryNode = replyNode """ (reply, nodes) = self.ector.generateSentence() reply = reply.replace("@bot@", nick) reply = reply.replace("@user@", self.botname) previousSentenceNode = None """ if message.lower().find(self.botname.lower()) >= 0 or nick.lower() == "mic64" or nick.lower() == "mabo" or nick.lower() == "mab0": self.say(self.channel, reply) return elif to == self.get_nick(): l = message.strip().lower().split(" ") if len(l) < 1: self.say(nick, "hi, do i know you?") return if l[0] == "dump": f = self.ector.dump() if f["cn"] < 1: self.say(nick,"returned an int < 1") elif f["cn"] > 0: self.say(nick,"returned an int > 0") return else: self.say(nick, "sorry, i can't understand") return def handle_ping(self): """ since Ector can work only with one user at time this will save the User State in one single file TODO: look into Eric to give him a list of users instead """ self.ector.setUser("User") d = self.ector.dump() print >>sys.stderr, "++> Writing ECTOR dump ( "+str(d)+" )"