예제 #1
0
    def on_coarse(self, message):
        logger.debug("NeutronBot::on_coarse")
        user = TelegramUser.objects.get(id=message.from_user.id).user
        informer, created = Informer.objects.get_or_create(user=user)
        meaning_pk = get_next_meaning_for_informer(informer)
        meaning = Meaning.objects.get(pk=meaning_pk)

        #msg = '*%s*: %s' % (definition.word, definition.definition)
        msg = '*%s*' % (meaning.word)

        markup = types.ReplyKeyboardMarkup(one_time_keyboard=False)
        alternates = ['ok', 'coarse!']
        markup.row(*alternates)
        markup.row('/help')

        def wait_reply(answer):
            logger.debug("NeutronBot::wait_reply_for_coarse")
            if answer.content_type == 'text':
                command = extract_command(answer.text)
                if not command:
                    logger.debug('Answer for %s: %s' % (meaning.word, answer.text))
                    if answer.text in alternates:
                        profane = (answer.text != alternates[0])
                        CoarseWord.objects.create(word=meaning.word,
                                                  profane=profane,
                                                  interface=self.interface,
                                                  informer=informer)
                    # Ask for another word
                    self.on_coarse(answer)

        self.send_message(message.chat.id, msg, reply_markup=markup, parse_mode='Markdown')
        #self.send_message(message.chat.id, msg, reply_markup=markup)

        self.pre_message_subscribers_next_step[message.chat.id] = []
        self.register_next_step_handler(message, wait_reply)
예제 #2
0
    def on_word(self, message):
        logger.debug("NeutronBot::on_word")
        user = TelegramUser.objects.get(id=message.from_user.id).user
        informer, created = Informer.objects.get_or_create(user=user)
        meaning_pk = get_next_meaning_for_informer(informer)
        meaning = Meaning.objects.get(pk=meaning_pk)

        msg = '*%s*: %s' % (meaning.word, meaning.definition)

        markup = types.ReplyKeyboardMarkup(one_time_keyboard=False)
        markup.row('ok', 'unknown')
        markup.row('/help')

        def wait_reply(answer):
            logger.debug("NeutronBot::wait_reply_for_word")
            if answer.content_type == 'text':
                command = extract_command(answer.text)
                if not command:
                    logger.debug('Answer for %s: %s' % (meaning.word, answer.text))
                    if answer.text in ['ok', 'unknown']:
                        use = WordUse.USES.ok if answer.text == 'ok' else WordUse.USES.unrecognized
                        WordUse.objects.create(meaning=meaning,
                                               use=use,
                                               interface=self.interface,
                                               informer=informer)
                        # Ask for another word
                    self.on_word(answer)

        self.send_message(message.chat.id, msg, reply_markup=markup, parse_mode='Markdown')
        #self.send_message(message.chat.id, msg, reply_markup=markup)

        self.pre_message_subscribers_next_step[message.chat.id] = []
        self.register_next_step_handler(message, wait_reply)
예제 #3
0
    def on_coarse(self, message):
        logger.debug("NeutronBot::on_coarse")
        user = TelegramUser.objects.get(id=message.from_user.id).user
        informer, created = Informer.objects.get_or_create(user=user)
        meaning_pk = get_next_meaning_for_informer(informer)
        meaning = Meaning.objects.get(pk=meaning_pk)

        #msg = '*%s*: %s' % (definition.word, definition.definition)
        msg = '*%s*' % (meaning.word)

        markup = types.ReplyKeyboardMarkup(one_time_keyboard=False)
        alternates = ['ok', 'coarse!']
        markup.row(*alternates)
        markup.row('/help')

        def wait_reply(answer):
            logger.debug("NeutronBot::wait_reply_for_coarse")
            if answer.content_type == 'text':
                command = extract_command(answer.text)
                if not command:
                    logger.debug('Answer for %s: %s' %
                                 (meaning.word, answer.text))
                    if answer.text in alternates:
                        profane = (answer.text != alternates[0])
                        CoarseWord.objects.create(word=meaning.word,
                                                  profane=profane,
                                                  interface=self.interface,
                                                  informer=informer)
                    # Ask for another word
                    self.on_coarse(answer)

        self.send_message(message.chat.id,
                          msg,
                          reply_markup=markup,
                          parse_mode='Markdown')
        #self.send_message(message.chat.id, msg, reply_markup=markup)

        self.pre_message_subscribers_next_step[message.chat.id] = []
        self.register_next_step_handler(message, wait_reply)
예제 #4
0
    def on_word(self, message):
        logger.debug("NeutronBot::on_word")
        user = TelegramUser.objects.get(id=message.from_user.id).user
        informer, created = Informer.objects.get_or_create(user=user)
        meaning_pk = get_next_meaning_for_informer(informer)
        meaning = Meaning.objects.get(pk=meaning_pk)

        msg = '*%s*: %s' % (meaning.word, meaning.definition)

        markup = types.ReplyKeyboardMarkup(one_time_keyboard=False)
        markup.row('ok', 'unknown')
        markup.row('/help')

        def wait_reply(answer):
            logger.debug("NeutronBot::wait_reply_for_word")
            if answer.content_type == 'text':
                command = extract_command(answer.text)
                if not command:
                    logger.debug('Answer for %s: %s' %
                                 (meaning.word, answer.text))
                    if answer.text in ['ok', 'unknown']:
                        use = WordUse.USES.ok if answer.text == 'ok' else WordUse.USES.unrecognized
                        WordUse.objects.create(meaning=meaning,
                                               use=use,
                                               interface=self.interface,
                                               informer=informer)
                        # Ask for another word
                    self.on_word(answer)

        self.send_message(message.chat.id,
                          msg,
                          reply_markup=markup,
                          parse_mode='Markdown')
        #self.send_message(message.chat.id, msg, reply_markup=markup)

        self.pre_message_subscribers_next_step[message.chat.id] = []
        self.register_next_step_handler(message, wait_reply)