예제 #1
0
 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
예제 #2
0
 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    
예제 #3
0
 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
예제 #4
0
 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
예제 #5
0
 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
예제 #6
0
 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    
예제 #7
0
 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
예제 #8
0
 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
예제 #9
0
 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
예제 #10
0
 def help(self):
     messages_list = list()
     messages_list.append(QuestMessage(self.messages['help'], False))
     return messages_list
예제 #11
0
 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