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