Exemple #1
0
    def for_everyone(self, status):
        text_lower = status["text"].lower()
        text = ENTITIES.sub("", status["text"])
        sentence = G.wakati(text)
        self.learn(sentence, status["in_reply_to_status_id"])
        level = 0
        if status["in_reply_to_screen_name"] == None:
            level += 1
        elif status["in_reply_to_screen_name"] == self.screen_name:
            level += 2

        if re.search("@" + self.screen_name.lower() + "[^\w_]", text_lower):
            level += 2
        
        if level >= 1:
            action = self.voluntary(text)
            if action:
                return action(status)
            
            if level >= 2:
                self.talked.append(status["user"]["screen_name"])
                
                if level >= 4:
                    action = self.pattern(text)
                    if action:
                        return action(status)
                
                return self.reply(status, G.format_words(random.choice(G.generate(self.markov_table, self.assoc_table, sentence, N=8, P=50, first=0.5, extra=6))[0], conversation=True).format(name=status["user"]["name"]))
                
        return Return(IOZero)
Exemple #2
0
 def learn(self, sentence, in_reply_to_status_id):
     self.markov_table.update(sentence)
     if in_reply_to_status_id:
         G.update_association(self.assoc_table,
             G.wakati(ENTITIES.sub("", self.api.showStatus(id=in_reply_to_status_id)["text"])),
             sentence)