Example #1
0
  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)
Example #2
0
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)+" )"