def accept_message(self, message): if self.state == "FINISHED": return False if is_negative(message.text): if self.bot.names[message.sender.id]: send_message(message.chat_id, u"Хорошо, будешь " + u", ".join(self.bot.names[message.sender.id])) self.state = "FINISHED" else: send_message(message.chat_id, u"Но надо же как-то называть!") elif "?" in message.text: send_message(message.chat_id, u"Ты скажи, можно ли тебя как-то ещё называть, а потом будешь вопросы задавать :)") send_message(message.chat_id, u"Если никак больше нельзя, так и скажи :)") else: name = message.text while True: for prefix in PREFIXES: if name.lower().startswith(prefix): name = name[len(prefix):] break else: break self.bot.names[message.sender.id].append(name) send_message(message.chat_id, random.choice(NEXT)) return True
def default_answer(self, message): if "hug" in message.text: interaction.send_message(message.chat_id, random.choice(POSITIVES) + ", " + random.choice(self.names[message.sender.id]) + ", " + message.text) else: interaction.send_message(message.chat_id, random.choice(self.names[message.sender.id]) + "! " + random.choice(HUG_IS_BETTER) + message.text)
def process_updates(self): updates = interaction.get_updates(self.last_update_id + 1) messages = [] for update in updates: if update.update_id > self.last_update_id: self.last_update_id = update.update_id messages.append(update.message) for message in messages: try: print "process", message.text self.process_message(message) except Exception, e: print e interaction.send_message(message.chat_id, u"Я сломался :(")
def __init__(self, bot, first_message): self.bot = bot send_message(first_message.chat_id, GREETING) self.state = "WAITING"