def get_hint(self): messages_list = list() if self.is_started: messages_list.append(QuestMessage(self.get_current_question().get_hint(), False)) self.logger.info("Hint displayed: %d" % (self.current_question_number + 1)) else: messages_list.append(QuestMessage(self.messages['quest_not_started'], False)) return messages_list
def end_quest(self): messages_list = list() if self.is_started: self.is_started = False self.logger.info("Quest ended") messages_list.append(QuestMessage(self.messages['quest_ended'], False)) else: messages_list.append(QuestMessage(self.messages['quest_not_started'], False)) return messages_list
def get_question_text(self): messages_list = list() if self.is_started: messages_list.append(QuestMessage("Question {0:d} of {1:d}".format(self.current_question_number + 1, len(self.questions)),False)) messages_list.append(QuestMessage(self.get_current_question().get_question(), False)) self.logger.info("Question displayed: %d" % (self.current_question_number + 1)) else: messages_list.append(QuestMessage(self.messages['quest_not_started'], False)) return messages_list
def stop(self): messages_list = list() if self.is_started == True: self.is_started = False self.quest.end_quest() messages_list.append( QuestMessage(self.messages['bot_stopped'], False)) else: messages_list.append( QuestMessage(self.messages['bot_not_started'], False)) return messages_list
def start(self): messages_list = list() if self.is_started == False: self.is_started = True messages_list.append( QuestMessage(self.messages['bot_started'], False)) messages_list += self.quest.start_quest() else: messages_list.append( QuestMessage(self.messages['bot_is_already_runnings'], False)) return messages_list
def start_quest(self, update_questions = True): messages_list = list() if not self.is_started: if update_questions: self.questions = self.questions_provider.get_questions() self.current_question_number = 0 self.is_started = True self.logger.info("Quest started") messages_list.append(QuestMessage(self.messages['welcome'], False)) messages_list += self.get_question_text() else: messages_list.append(QuestMessage(self.messages['quest_already_started'],False)) return messages_list
def answer(self, answer_text): messages_list = list() if self.is_started: messages_list += self.quest.assess_answer(answer_text) else: messages_list.append( QuestMessage(self.messages['bot_not_started'], False)) return messages_list
def hint(self): messages_list = list() if self.is_started: messages_list += self.quest.get_hint() else: messages_list.append( QuestMessage(self.messages['bot_not_started'], False)) return messages_list
def assess_answer(self, answer): messages_list = list() if self.is_started: (result, message) = self.get_current_question().assess_answer(answer) messages_list.append(QuestMessage(message, True)) if result == True: messages_list.append(QuestMessage(self.messages['correct_answer'], True)) question = self.next_question() if question is not None: messages_list += self.get_question_text() else: messages_list.append(QuestMessage(self.messages['finish'], False)) self.is_started = False else: messages_list.append(QuestMessage(self.messages['incorrect_answer'], True)) self.logger.info("Answer for question %d assesed. Given Answer: %s. Result: %s", (self.current_question_number + 1), answer, result) else: messages_list.append(QuestMessage(self.messages['quest_not_started'], True)) return messages_list
def help(self): messages_list = list() messages_list.append(QuestMessage(self.messages['help'], False)) return messages_list
def error(self, update, context): messages_list = list() error_message = "Update caused error" messages_list.append(QuestMessage(error_message, False)) self.logger.warning(error_message) return messages_list