コード例 #1
0
ファイル: bot_student_class.py プロジェクト: FedeIng/tesi
 def add_comment(self, chat_id, from_id, txt, lang, chat_type):
     user = super().get_bot().getChat(from_id)
     if txt in self.node.get_json_array(lang):
         self.node.set_qid(chat_id, from_id, txt)
         self.singleton.add_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id, 3,
                                    self.node.get_topic_name())
         send_message(super().get_bot(),
                      chat_id,
                      tag_group(chat_type, user) +
                      self.node.get_string(lang, "rv_comment"),
                      self.node.get_string(lang, "canc"),
                      self.singleton.check_time_id(
                          chat_type, self.node.get_lang(), lang, from_id,
                          chat_id, self.node.get_topic_name()) != 0,
                      reply_markup=create_reply_keyboard(
                          [[self.node.get_string(lang, "comment")]]))
     else:
         self.singleton.del_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id,
                                    self.node.get_topic_name())
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.node.get_string(lang, "error_q"),
             self.node.get_string(lang, "canc"),
             self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                          lang, from_id, chat_id,
                                          self.node.get_topic_name()) != 0)
コード例 #2
0
 def case1(self, chat_id, from_id, txt, lang, topic, chat_type):
     user = super().get_bot().getChat(from_id)
     res = self.tree.get_response(txt, lang, topic)
     if res != None:
         self.tree.set_qid(chat_id, from_id, txt, topic)
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 4,
                                       "teacher")
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.tree.get_string(lang, "answer", xxx=txt),
             self.tree.get_string(lang, "canc"),
             self.singleton_id.check_time_id(
                 chat_type, self.tree.get_lang(), lang, from_id,
                 chat_id, "teacher") != 0)
     else:
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.tree.get_string(lang, "error"),
             self.tree.get_string(lang, "canc"),
             self.singleton_id.check_time_id(
                 chat_type, self.tree.get_lang(), lang, from_id,
                 chat_id, "teacher") != 0)
コード例 #3
0
ファイル: bot_student_class.py プロジェクト: FedeIng/tesi
 def final_set(self, chat_id, from_id, txt, lang, chat_type):
     user = super().get_bot().getChat(from_id)
     txt = self.node.get_lang_by_flag(txt)
     if txt == None:
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.node.get_string(lang, "error"),
             self.node.get_string(lang, "canc"),
             self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                          lang, from_id, chat_id,
                                          self.node.get_topic_name()) != 0)
         return
     self.del_students([chat_id])
     self.add_students(txt, [chat_id])
     send_message(
         super().get_bot(), chat_id,
         tag_group(chat_type, user) +
         self.node.get_string(txt, "setted_lang"),
         self.node.get_string(lang, "canc"),
         self.singleton.check_time_id(chat_type, self.node.get_lang(), lang,
                                      from_id, chat_id,
                                      self.node.get_topic_name()) != 0)
     self.singleton.start_fun(chat_id, from_id, chat_type, txt,
                              self.node.get_lang(),
                              self.node.get_topic_name(),
                              self.node.get_topic_name(), self.keyboard)
コード例 #4
0
ファイル: bot_student_class.py プロジェクト: FedeIng/tesi
 def set_lang(self, chat_id, from_id, lang, chat_type):
     user = super().get_bot().getChat(from_id)
     lang_array = self.get_lang_array()
     if len(lang_array) > 0:
         self.singleton.add_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id, 4,
                                    self.node.get_topic_name())
         send_message(super().get_bot(),
                      chat_id,
                      tag_group(chat_type, user) +
                      self.node.get_string(lang, "lang"),
                      self.node.get_string(lang, "canc"),
                      self.singleton.check_time_id(
                          chat_type, self.node.get_lang(), lang, from_id,
                          chat_id, self.node.get_topic_name()) != 0,
                      reply_markup=self.node.set_lang_keyboard(lang_array))
     else:
         send_message(super().get_bot(),
                      chat_id,
                      tag_group(chat_type, user) +
                      self.node.get_string(lang, "disable"),
                      self.node.get_string(lang, "canc"),
                      self.singleton.check_time_id(
                          chat_type, self.node.get_lang(), lang, from_id,
                          chat_id, self.node.get_topic_name()) != 0,
                      reply_markup=ReplyKeyboardRemove())
コード例 #5
0
ファイル: bot_student_class.py プロジェクト: FedeIng/tesi
 def seg_rev(self, chat_id, from_id, txt, lang, chat_type):
     question = self.node.get_qid(chat_id, from_id)
     self.node.del_qid(chat_id, from_id)
     user = super().get_bot().getChat(from_id)
     is_new = self.node.check_lang_str(txt, "comment")
     if is_new:
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.node.get_string(lang, "revision", xxx=question),
             self.node.get_string(lang, "canc"),
             self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                          lang, from_id, chat_id,
                                          self.node.get_topic_name()) != 0)
         if not self.node.set_rv_comment(question, "", lang):
             return
         self.new_seg_rev(question, lang, user, chat_type, from_id, chat_id)
     else:
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.node.get_string(lang, "revision", xxx=question) + " (\"" +
             txt + "\")", self.node.get_string(lang, "canc"),
             self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                          lang, from_id, chat_id,
                                          self.node.get_topic_name()) != 0)
         if not self.node.set_rv_comment(question, txt, lang):
             return
         self.old_seg_rev(question, lang, user, chat_type, from_id, chat_id)
コード例 #6
0
 def add_hints(self, chat_id, from_id, topic, lang, chat_type, user):
     self.tree.set_nlp(lang)
     hints = self.tree.get_hint(topic, lang)
     if len(hints) > 0:
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 6,
                                       "teacher")
         send_message(super().get_bot(),
                      chat_id,
                      tag_group(chat_type, user) +
                      self.tree.get_string(lang, "select_hint"),
                      self.tree.get_string(lang, "canc"),
                      self.singleton_id.check_time_id(
                          chat_type, self.tree.get_lang(), lang,
                          from_id, chat_id, "teacher") != 0,
                      reply_markup=create_reply_keyboard(
                          array_to_matrix(
                              self.tree.get_hint(topic, lang))))
     else:
         self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id,
                                       "teacher")
         send_message(super().get_bot(),
                      chat_id,
                      tag_group(chat_type, user) +
                      self.tree.get_string(lang, "empty"),
                      self.tree.get_string(lang, "canc"),
                      self.singleton_id.check_time_id(
                          chat_type, self.tree.get_lang(), lang,
                          from_id, chat_id, "teacher") != 0,
                      reply_markup=create_reply_keyboard(
                          array_to_matrix(
                              self.tree.get_hint(topic, lang))))
コード例 #7
0
 def case7(self, chat_id, from_id, txt, lang, topic, chat_type):
     user = super().get_bot().getChat(from_id)
     txt = self.tree.switcherflag(txt)
     if txt == None:
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.tree.get_string(lang, "error"),
             self.tree.get_string(lang, "canc"),
             self.singleton_id.check_time_id(
                 chat_type, self.tree.get_lang(), lang, from_id,
                 chat_id, "teacher") != 0)
         return
     self.tree.set_super_user_lang(chat_id, topic, txt)
     send_message(
         super().get_bot(), chat_id,
         tag_group(chat_type, user) +
         self.tree.get_string(txt, "setted_lang"),
         self.tree.get_string(lang, "canc"),
         self.singleton_id.check_time_id(
             chat_type, self.tree.get_lang(), lang, from_id, chat_id,
             "teacher") != 0)
     self.singleton_id.start_fun(chat_id, from_id, chat_type, txt,
                                 self.tree.get_lang(), "teacher", topic,
                                 self.keyboard)
コード例 #8
0
ファイル: bot_student_class.py プロジェクト: FedeIng/tesi
 def match_speech(self, chat_id, from_id, txt, lang, chat_type):
     is_new = self.node.check_lang_str(txt, "new_button")
     if not is_new:
         self.node.set_qid(chat_id, from_id, txt)
     user = super().get_bot().getChat(from_id)
     elem = self.node.get_qid(chat_id, from_id)
     response = None
     if not is_new:
         response = self.node.get_response(elem, lang)
     if response == None:
         self.node.set_question(elem, lang, chat_id)
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.node.get_string(lang, "q_not_found", xxx=elem),
             self.node.get_string(lang, "canc"),
             self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                          lang, from_id, chat_id,
                                          self.node.get_topic_name()) != 0)
         if lang in self.teachers:
             for teacher_id in self.teachers[lang]:
                 send_message(
                     self.node.get_bot_teacher().get_bot(), teacher_id,
                     self.node.get_string(lang, "new_q", xxx=elem),
                     self.node.get_string(lang, "canc"),
                     self.singleton.check_time_id(
                         chat_type, self.node.get_lang(), lang, from_id,
                         chat_id, self.node.get_topic_name()) != 0)
     elif response == "BANNED":
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.node.get_string(lang, "banned_q", xxx=elem),
             self.node.get_string(lang, "canc"),
             self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                          lang, from_id, chat_id,
                                          self.node.get_topic_name()) != 0)
     elif response == "":
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.node.get_string(lang, "wait_q", xxx=elem),
             self.node.get_string(lang, "canc"),
             self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                          lang, from_id, chat_id,
                                          self.node.get_topic_name()) != 0)
     else:
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.node.get_string(lang, "answer_q", xxx=elem, yyy=response),
             self.node.get_string(lang, "canc"),
             self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                          lang, from_id, chat_id,
                                          self.node.get_topic_name()) != 0)
     self.node.del_qid(chat_id, from_id)
コード例 #9
0
 def case4(self, chat_id, from_id, txt, lang, topic, chat_type):
     user = super().get_bot().getChat(from_id)
     question = self.tree.set_res(chat_id, from_id, txt, lang, topic)
     if question == None:
         return
     vett = self.tree.get_ids_array(topic, lang, question)
     self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                   lang, from_id, chat_id, "teacher")
     send_message(
         super().get_bot(), chat_id,
         tag_group(chat_type, user) +
         self.tree.get_string(lang, "answer_q", xxx=question, yyy=txt),
         self.tree.get_string(lang, "canc"),
         self.singleton_id.check_time_id(
             chat_type, self.tree.get_lang(), lang, from_id, chat_id,
             "teacher") != 0)
     for elem in vett:
         send_message(
             self.tree.get_bot_by_topic(topic), elem,
             self.tree.get_string(lang,
                                  "answer_q",
                                  xxx=question,
                                  yyy=txt),
             self.tree.get_string(lang, "canc"),
             self.singleton_id.check_time_id(
                 chat_type, self.tree.get_lang(), lang, from_id,
                 chat_id, "teacher") != 0)
コード例 #10
0
ファイル: bot_student_class.py プロジェクト: FedeIng/tesi
 def sel_question(self, chat_id, from_id, txt, lang, chat_type):
     list_val = self.node.get_sent(lang, txt)
     user = super().get_bot().getChat(from_id)
     print(list_val)
     if len(list_val) != 1:
         self.singleton.del_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id,
                                    self.node.get_topic_name())
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.node.get_string(lang, "error_q"),
             self.node.get_string(lang, "canc"),
             self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                          lang, from_id, chat_id,
                                          self.node.get_topic_name()) != 0)
         return
     txt = list_val[0].lower()
     bres = self.node.get_best_resp(txt, lang)
     self.node.set_qid(chat_id, from_id, txt)
     if bres == []:
         self.singleton.del_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id,
                                    self.node.get_topic_name())
         self.match_speech(chat_id, from_id,
                           self.node.get_string(lang, "new_button"), lang,
                           chat_type)
     elif txt in bres:
         self.singleton.del_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id,
                                    self.node.get_topic_name())
         self.match_speech(chat_id, from_id, txt, lang, chat_type)
     else:
         bres.append(self.node.get_string(lang, "new_button"))
         self.singleton.add_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id, 1,
                                    self.node.get_topic_name())
         send_message(super().get_bot(),
                      chat_id,
                      tag_group(chat_type, user) +
                      self.node.get_string(lang, "select_q"),
                      self.node.get_string(lang, "canc"),
                      self.singleton.check_time_id(
                          chat_type, self.node.get_lang(), lang, from_id,
                          chat_id, self.node.get_topic_name()) != 0,
                      reply_markup=create_reply_keyboard(
                          array_to_matrix(bres)))
コード例 #11
0
 def list_sel(self, chat_id, from_id, lang, list1, chat_type):
     user = super().get_bot().getChat(from_id)
     if list1 == []:
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.tree.get_string(lang, "empty"),
             self.tree.get_string(lang, "canc"),
             self.singleton_id.check_time_id(
                 chat_type, self.tree.get_lang(), lang, from_id,
                 chat_id, "teacher") != 0)
     else:
         reply = telepot.message_identifier(
             send_message(
                 super().get_bot(), chat_id,
                 tag_group(chat_type, user) + "File:",
                 self.tree.get_string(lang, "canc"),
                 self.singleton_id.check_time_id(
                     chat_type, self.tree.get_lang(), lang, from_id,
                     chat_id, "teacher") != 0))[1]
         send_doc(super().get_bot(), chat_id, list_to_str(list1), reply)
コード例 #12
0
 def hints(self, chat_id, from_id, topic, lang, chat_type, user):
     self.tree.set_nlp(lang)
     vett = self.tree.get_hint(topic, lang)
     self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                   lang, from_id, chat_id, "teacher")
     if vett != []:
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) + list_to_str(vett),
             self.tree.get_string(lang, "canc"),
             self.singleton_id.check_time_id(
                 chat_type, self.tree.get_lang(), lang, from_id,
                 chat_id, "teacher") != 0)
     else:
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.tree.get_string(lang, "empty"),
             self.tree.get_string(lang, "canc"),
             self.singleton_id.check_time_id(
                 chat_type, self.tree.get_lang(), lang, from_id,
                 chat_id, "teacher") != 0)
コード例 #13
0
ファイル: bot_student_class.py プロジェクト: FedeIng/tesi
 def list_by_user(self, chat_id, from_id, lang, chat_type):
     user = super().get_bot().getChat(from_id)
     list1 = self.node.get_q_array(chat_id, lang)
     if list1 == []:
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.node.get_string(lang, "empty"),
             self.node.get_string(lang, "canc"),
             self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                          lang, from_id, chat_id,
                                          self.node.get_topic_name()) != 0)
     else:
         reply = telepot.message_identifier(
             send_message(
                 super().get_bot(), chat_id,
                 tag_group(chat_type, user) + "File:",
                 self.node.get_string(lang, "canc"),
                 self.singleton.check_time_id(
                     chat_type, self.node.get_lang(), lang, from_id,
                     chat_id, self.node.get_topic_name()) != 0))[1]
         send_doc(super().get_bot(), chat_id, list_to_str(list1), reply)
コード例 #14
0
ファイル: bot_student_class.py プロジェクト: FedeIng/tesi
 def new_seg_rev(self, question, lang, user, chat_type, from_id, chat_id):
     response = self.node.get_response(question, lang)
     if lang in self.teachers:
         for teacher_id in self.teachers[lang]:
             if response != None and response != "" and lang in self.teachers:
                 send_message(
                     self.node.get_bot_teacher().get_bot(), teacher_id,
                     tag_group(chat_type, user) +
                     self.node.get_string(lang, "revision", xxx=question),
                     self.node.get_string(lang, "canc"),
                     self.singleton.check_time_id(
                         chat_type, self.node.get_lang(), lang, from_id,
                         chat_id, self.node.get_topic_name()) != 0)
コード例 #15
0
 def sub_nv(self, new_times, new_ids, count, array, time, lang_class):
     user = bot.getChat(elem1)
     if self.id_times[array[0]][array[1]][array[2]] > time:
         new_times, new_ids = self.add_elem(new_times, new_ids,
                                            array[1], array[2],
                                            array[0])
         count += 1
     elif array[0] in self.id_commands and array[1] in self.id_commands[
             array[0]] and array[2] in self.id_commands[array[0]][
                 array[1]]:
         send_message(
             self.bot_array[array[0]], array[1],
             tag_group(chat_type, user) +
             lang_class.get_string(lang, "timeout"))
     return new_times, new_ids, count
コード例 #16
0
 def case6(self, chat_id, from_id, txt, lang, topic, chat_type):
     user = super().get_bot().getChat(from_id)
     splitted = txt[1:-1].split("\" -> \"")
     self.tree.add_question_by_hint(lang, splitted[0], splitted[1],
                                    chat_id, from_id, topic)
     self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                   lang, from_id, chat_id, "teacher")
     send_message(
         super().get_bot(), chat_id,
         tag_group(chat_type, user) + self.tree.get_string(
             lang, "answer_q", xxx=splitted[0], yyy=splitted[1]),
         self.tree.get_string(lang, "canc"),
         self.singleton_id.check_time_id(
             chat_type, self.tree.get_lang(), lang, from_id, chat_id,
             "teacher") != 0)
コード例 #17
0
 def delete_old_branchthreetwo(self, name, elem, elem1, lang_class,
                               user):
     del self.id_times[name][elem][elem1]
     if name in self.id_commands and elem in self.id_commands[
             name] and elem1 in self.id_commands[name][elem]:
         send_message(
             self.bot_array[name], elem,
             tag_group(chat_type, user) +
             lang_class.get_string(lang, "timeout"))
         del self.id_commands[name][elem][elem1]
         if len(self.id_commands[name][elem]) == 0:
             del self.id_commands[name][elem]
             if len(self.id_commands[name]) == 0:
                 del self.id_commands[name]
     if len(self.id_times[name][elem]) == 0:
         del self.id_times[name][elem]
コード例 #18
0
 def start_fun(self, chat_id, from_id, chat_type, lang, lang_class,
               name, topic, keyboard):
     user = self.bot_array[name].getChat(from_id)
     send_message(
         self.bot_array[name], chat_id,
         tag_group(chat_type, user) +
         lang_class.get_string(lang, "start", xxx=topic))
     try:
         self.set_key_id(
             telepot.message_identifier(
                 send_message(self.bot_array[name],
                              chat_id,
                              lang_class.get_string(lang, "command"),
                              reply_markup=keyboard)), name)
     except TypeError:
         pass
コード例 #19
0
 def case5(self, chat_id, from_id, txt, lang, topic, chat_type):
     user = super().get_bot().getChat(from_id)
     self.tree.set_sban(txt, lang, topic)
     vett = self.tree.get_ids_array(topic, lang, txt)
     self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                   lang, from_id, chat_id)
     send_message(
         super().get_bot(), chat_id,
         tag_group(chat_type, user) + self.tree.get_string(
             lang, "banned_q", xxx=txt).replace("ban", "sban"),
         self.tree.get_string(lang, "canc"),
         self.singleton_id.check_time_id(
             chat_type, self.tree.get_lang(), lang, from_id, chat_id,
             "teacher") != 0)
     for elem in vett:
         send_message(
             self.tree.get_bot_by_topic(topic), elem,
             self.tree.get_string(lang, "banned_q",
                                  xxx=txt).replace("ban", "sban"))
コード例 #20
0
ファイル: bot_student_class.py プロジェクト: FedeIng/tesi
 def query(self, msg):
     query_id, from_id, query_data = telepot.glance(msg,
                                                    flavor="callback_query")
     chat_id = msg["message"]["chat"]["id"]
     chat_type = msg["message"]["chat"]["type"]
     user = super().get_bot().getChat(from_id)
     lang = self.get_user_lang(chat_id)
     if lang == None and (not self.singleton.check_time_id(
             chat_type, self.node.get_lang(), lang, from_id, chat_id,
             self.node.get_topic_name()) == 4
                          or not txt in self.node.get_flag_list()):
         self.switch_lang(chat_id, from_id, msg, chat_type)
     elif chat_id in self.banned_user:
         self.singleton.del_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id,
                                    self.node.get_topic_name())
         send_message(super().get_bot(), chat_id,
                      self.node.get_string(lang, "banned_user"))
     elif query_data == 's':
         self.singleton.del_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id,
                                    self.node.get_topic_name())
         self.singleton.start_fun(chat_id, from_id, chat_type, lang,
                                  self.node.get_lang(),
                                  self.node.get_topic_name(),
                                  self.node.get_topic_name(), self.keyboard)
     elif query_data == 'q':
         self.singleton.add_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id, 5,
                                    self.node.get_topic_name())
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.node.get_string(lang, "question"),
             self.node.get_string(lang, "canc"),
             self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                          lang, from_id, chat_id,
                                          self.node.get_topic_name()) != 0)
     elif query_data == 'r':
         self.singleton.add_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id, 2,
                                    self.node.get_topic_name())
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.node.get_string(lang, "report"),
             self.node.get_string(lang, "canc"),
             self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                          lang, from_id, chat_id,
                                          self.node.get_topic_name()) != 0)
     elif query_data == 'rv':
         self.singleton.add_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id, 6,
                                    self.node.get_topic_name())
         selection(chat_id, from_id, lang,
                   self.node.get_res_array(lang, "ANSWER"), chat_type,
                   super().get_bot(), self.node.get_lang(), self.singleton,
                   self.node.get_topic_name())
     elif query_data == 'cl':
         self.singleton.add_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id, 4,
                                    self.node.get_topic_name())
         self.set_lang(chat_id, from_id, lang, chat_type)
     elif query_data == 'l':
         self.singleton.del_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id,
                                    self.node.get_topic_name())
         self.list_by_user(chat_id, from_id, lang, chat_type)
     elif query_data == 'ds':
         self.singleton.del_time_id(chat_type, self.node.get_lang(), lang,
                                    from_id, chat_id,
                                    self.node.get_topic_name())
         self.del_students([chat_id])
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.node.get_string(lang, "delete_s"),
             self.node.get_string(lang, "canc"),
             self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                          lang, from_id, chat_id,
                                          self.node.get_topic_name()) != 0)
コード例 #21
0
 def sub_message(self, chat_type, chat_id, from_id, topic, user, msg):
     txt = msg["text"]
     lang = self.tree.get_super_user_lang(chat_id, topic)
     if self.start_command(txt, chat_type, lang, from_id, chat_id):
         self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id,
                                       "teacher")
         self.singleton_id.start_fun(chat_id, from_id, chat_type, lang,
                                     self.tree.get_lang(), "teacher",
                                     topic, self.keyboard)
     elif match_command('/answer', txt, chat_type,
                        super().get_bot().getMe()["username"]):
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 1,
                                       "teacher")
         selection(chat_id, from_id, lang,
                   self.tree.get_res_array(topic, lang,
                                           "FREE"), chat_type,
                   super().get_bot(), self.tree.get_lang(),
                   self.singleton_id, "teacher")
     elif match_command('/ban', txt, chat_type,
                        super().get_bot().getMe()["username"]):
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 3,
                                       "teacher")
         selection(chat_id, from_id, lang,
                   self.tree.get_res_array(topic, lang,
                                           "FREE"), chat_type,
                   super().get_bot(), self.tree.get_lang(),
                   self.singleton_id, "teacher")
     elif match_command('/report', txt, chat_type,
                        super().get_bot().getMe()["username"]):
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 2,
                                       "teacher")
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.tree.get_string(lang, "report"),
             self.tree.get_string(lang, "canc"),
             self.singleton_id.check_time_id(
                 chat_type, self.tree.get_lang(), lang, from_id,
                 chat_id, "teacher") != 0)
     elif match_command('/list', txt, chat_type,
                        super().get_bot().getMe()["username"]):
         self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id,
                                       "teacher")
         self.list_sel(chat_id, from_id, lang,
                       self.tree.get_res_array(topic, lang, "ANSWER"),
                       chat_type)
     elif match_command('/ban_list', txt, chat_type,
                        super().get_bot().getMe()["username"]):
         self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id,
                                       "teacher")
         self.list_sel(chat_id, from_id, lang,
                       self.tree.get_res_array(topic, lang, "BANNED"),
                       chat_type)
     elif match_command('/free_list', txt, chat_type,
                        super().get_bot().getMe()["username"]):
         self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id,
                                       "teacher")
         self.list_sel(chat_id, from_id, lang,
                       self.tree.get_res_array(topic, lang, "FREE"),
                       chat_type)
     elif match_command('/sban', txt, chat_type,
                        super().get_bot().getMe()["username"]):
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 5,
                                       "teacher")
         selection(chat_id, from_id, lang,
                   self.tree.get_res_array(topic, lang,
                                           "BANNED"), chat_type,
                   super().get_bot(), self.tree.get_lang(),
                   self.singleton_id, "teacher")
     elif match_command('/change', txt, chat_type,
                        super().get_bot().getMe()["username"]):
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 1,
                                       "teacher")
         selection(chat_id, from_id, lang,
                   self.tree.get_res_array(topic, lang,
                                           "ANSWER"), chat_type,
                   super().get_bot(), self.tree.get_lang(),
                   self.singleton_id, "teacher")
     elif match_command('/delete', txt, chat_type,
                        super().get_bot().getMe()["username"]):
         self.tree.delete_tc(chat_id, topic)
         self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id,
                                       "teacher")
         send_message(super().get_bot(),
                      chat_id,
                      "Permission deleted",
                      self.tree.get_string(lang, "canc"),
                      self.singleton_id.check_time_id(
                          chat_type, self.tree.get_lang(), lang,
                          from_id, chat_id, "teacher") != 0,
                      reply_markup=ReplyKeyboardRemove())
     elif match_command('/hints', txt, chat_type,
                        super().get_bot().getMe()["username"]):
         self.hints(chat_id, from_id, topic, lang, chat_type, user)
     elif match_command('/add_hint', txt, chat_type,
                        super().get_bot().getMe()["username"]):
         self.add_hints(chat_id, from_id, topic, lang, chat_type, user)
     elif match_command('/change_lang', txt, chat_type,
                        super().get_bot().getMe()["username"]):
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 7,
                                       "teacher")
         send_message(super().get_bot(),
                      chat_id,
                      tag_group(chat_type, user) +
                      self.tree.get_string(lang, "lang"),
                      self.tree.get_string(lang, "canc"),
                      self.singleton_id.check_time_id(
                          chat_type, self.tree.get_lang(), lang,
                          from_id, chat_id, "teacher") != 0,
                      reply_markup=self.tree.set_keyboard(
                          ["it", "de", "en", "es", "fr"]))
     elif match_command('/change_role', txt, chat_type,
                        super().get_bot().getMe()["username"]):
         role = self.tree.change_role(chat_id, topic)
         send_message(super().get_bot(),
                      chat_id,
                      self.tree.get_string(lang, role),
                      self.tree.get_string(lang, "canc"),
                      self.singleton_id.check_time_id(
                          chat_type, self.tree.get_lang(), lang,
                          from_id, chat_id, "teacher") != 0,
                      reply_markup=ReplyKeyboardRemove())
         self.singleton_id.start_fun(chat_id, from_id, chat_type, lang,
                                     self.tree.get_lang(), "teacher",
                                     topic, self.keyboard)
     elif self.singleton_id.check_time_id(
             chat_type, self.tree.get_lang(), lang, from_id, chat_id,
             "teacher") != 0:
         self.switcher(chat_id, from_id, txt, lang, topic, chat_type)
コード例 #22
0
ファイル: bot_student_class.py プロジェクト: FedeIng/tesi
 def message(self, msg):
     content_type, chat_type, chat_id = telepot.glance(msg)
     from_id = msg["from"]["id"]
     if content_type == 'text':
         txt = msg["text"]
         user = super().get_bot().getChat(from_id)
         lang = self.get_user_lang(chat_id)
         if (lang == None and (not self.singleton.check_time_id(
                 chat_type, self.node.get_lang(), lang, from_id, chat_id,
                 self.node.get_topic_name()) == 4
                               or not txt in self.node.get_flag_list())):
             self.switch_lang(chat_id, from_id, msg, chat_type)
         elif chat_id in self.banned_user:
             self.singleton.del_time_id(chat_type, self.node.get_lang(),
                                        lang, from_id, chat_id,
                                        self.node.get_topic_name())
             send_message(super().get_bot(), chat_id,
                          self.node.get_string(lang, "banned_user"))
         elif self.start_command(txt, chat_type, lang, from_id, chat_id):
             self.singleton.del_time_id(chat_type, self.node.get_lang(),
                                        lang, from_id, chat_id,
                                        self.node.get_topic_name())
             self.singleton.start_fun(chat_id, from_id, chat_type, lang,
                                      self.node.get_lang(),
                                      self.node.get_topic_name(),
                                      self.node.get_topic_name(),
                                      self.keyboard)
         elif match_command('/question', txt, chat_type,
                            super().get_bot().getMe()["username"]):
             self.singleton.add_time_id(chat_type, self.node.get_lang(),
                                        lang, from_id, chat_id, 5,
                                        self.node.get_topic_name())
             send_message(
                 super().get_bot(), chat_id,
                 tag_group(chat_type, user) +
                 self.node.get_string(lang, "question"),
                 self.node.get_string(lang, "canc"),
                 self.singleton.check_time_id(
                     chat_type, self.node.get_lang(), lang, from_id,
                     chat_id, self.node.get_topic_name()) != 0)
         elif match_command('/report', txt, chat_type,
                            super().get_bot().getMe()["username"]):
             self.singleton.add_time_id(chat_type, self.node.get_lang(),
                                        lang, from_id, chat_id, 2,
                                        self.node.get_topic_name())
             send_message(
                 super().get_bot(), chat_id,
                 tag_group(chat_type, user) +
                 self.node.get_string(lang, "report"),
                 self.node.get_string(lang, "canc"),
                 self.singleton.check_time_id(
                     chat_type, self.node.get_lang(), lang, from_id,
                     chat_id, self.node.get_topic_name()) != 0)
         elif match_command('/revision', txt, chat_type,
                            super().get_bot().getMe()["username"]):
             self.singleton.add_time_id(chat_type, self.node.get_lang(),
                                        lang, from_id, chat_id, 6,
                                        self.node.get_topic_name())
             selection(chat_id, from_id, lang,
                       self.node.get_res_array(lang, "ANSWER"), chat_type,
                       super().get_bot(), self.get_lang_array(),
                       self.singleton, self.node.get_topic_name())
         elif match_command('/change_lang', txt, chat_type,
                            super().get_bot().getMe()["username"]):
             self.singleton.add_time_id(chat_type, self.node.get_lang(),
                                        lang, from_id, chat_id, 4,
                                        self.node.get_topic_name())
             self.set_lang(chat_id, from_id, lang, chat_type)
         elif match_command('/list', txt, chat_type,
                            super().get_bot().getMe()["username"]):
             self.singleton.del_time_id(chat_type, self.node.get_lang(),
                                        lang, from_id, chat_id,
                                        self.node.get_topic_name())
             self.list_by_user(from_id, chat_id, lang, chat_type)
         elif match_command('/delete_subscription', txt, chat_type,
                            super().get_bot().getMe()["username"]):
             self.singleton.del_time_id(chat_type, self.node.get_lang(),
                                        lang, from_id, chat_id,
                                        self.node.get_topic_name())
             self.del_students([chat_id])
             send_message(
                 super().get_bot(), chat_id,
                 tag_group(chat_type, user) +
                 self.node.get_string(lang, "delete_s"),
                 self.node.get_string(lang, "canc"),
                 self.singleton.check_time_id(
                     chat_type, self.node.get_lang(), lang, from_id,
                     chat_id, self.node.get_topic_name()) != 0)
         elif self.singleton.check_time_id(chat_type, self.node.get_lang(),
                                           lang, from_id, chat_id,
                                           self.node.get_topic_name()) != 0:
             self.switcher(chat_id, from_id, txt, lang, chat_type)
コード例 #23
0
 def query(self, msg):
     query_id, from_id, query_data = telepot.glance(
         msg, flavor="callback_query")
     chat_id = msg["message"]["chat"]["id"]
     chat_type = msg["message"]["chat"]["type"]
     topic = self.tree.get_topic(chat_id)
     user = super().get_bot().getChat(from_id)
     if not self.verify_user(msg, chat_id, from_id, topic):
         return
     lang = self.tree.get_super_user_lang(chat_id, topic)
     if query_data == 's':
         self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id,
                                       "teacher")
         self.singleton_id.start_fun(chat_id, from_id, chat_type, lang,
                                     self.tree.get_lang(), "teacher",
                                     topic, self.keyboard)
     elif query_data == 'a':
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 1,
                                       "teacher")
         selection(chat_id, from_id, lang,
                   self.tree.get_res_array(topic, lang,
                                           "FREE"), chat_type,
                   super().get_bot(), self.tree.get_lang(),
                   self.singleton_id, "teacher")
     elif query_data == 'b':
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 3,
                                       "teacher")
         selection(chat_id, from_id, lang,
                   self.tree.get_res_array(topic, lang,
                                           "FREE"), chat_type,
                   super().get_bot(), self.tree.get_lang(),
                   self.singleton_id, "teacher")
     elif query_data == 'r':
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 2,
                                       "teacher")
         send_message(
             super().get_bot(), chat_id,
             tag_group(chat_type, user) +
             self.tree.get_string(lang, "report"),
             self.tree.get_string(lang, "canc"),
             self.singleton_id.check_time_id(
                 chat_type, self.tree.get_lang(), lang, from_id,
                 chat_id, "teacher") != 0)
     elif query_data == 'l':
         self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id,
                                       "teacher")
         self.list_sel(chat_id, from_id, lang,
                       self.tree.get_res_array(topic, lang, "ANSWER"),
                       chat_type)
     elif query_data == 'fl':
         self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id,
                                       "teacher")
         self.list_sel(chat_id, from_id, lang,
                       self.tree.get_res_array(topic, lang, "FREE"),
                       chat_type)
     elif query_data == 'bl':
         self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id,
                                       "teacher")
         self.list_sel(chat_id, from_id, lang,
                       self.tree.get_res_array(topic, lang, "BANNED"),
                       chat_type)
     elif query_data == 'sb':
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 5,
                                       "teacher")
         selection(chat_id, from_id, lang,
                   self.tree.get_res_array(topic, lang,
                                           "BANNED"), chat_type,
                   super().get_bot(), self.tree.get_lang(),
                   self.singleton_id, "teacher")
     elif query_data == 'c':
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 1,
                                       "teacher")
         selection(chat_id, from_id, lang,
                   self.tree.get_res_array(topic, lang,
                                           "ANSWER"), chat_type,
                   super().get_bot(), self.tree.get_lang(),
                   self.singleton_id, "teacher")
     elif query_data == 'd':
         self.tree.delete_tc(chat_id, topic)
         self.singleton_id.del_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id,
                                       "teacher")
         send_message(super().get_bot(),
                      chat_id,
                      "Permission deleted",
                      self.tree.get_string(lang, "canc"),
                      self.singleton_id.check_time_id(
                          chat_type, self.tree.get_lang(), lang,
                          from_id, chat_id, "teacher") != 0,
                      reply_markup=ReplyKeyboardRemove())
     elif query_data == 'h':
         self.hints(chat_id, from_id, topic, lang, chat_type, user)
     elif query_data == 'ah':
         self.add_hints(chat_id, from_id, topic, lang, chat_type, user)
     elif query_data == 'cl':
         self.singleton_id.add_time_id(chat_type, self.tree.get_lang(),
                                       lang, from_id, chat_id, 7,
                                       "teacher")
         send_message(super().get_bot(),
                      chat_id,
                      tag_group(chat_type, user) +
                      self.tree.get_string(lang, "lang"),
                      self.tree.get_string(lang, "canc"),
                      self.singleton_id.check_time_id(
                          chat_type, self.tree.get_lang(), lang,
                          from_id, chat_id, "teacher") != 0,
                      reply_markup=self.tree.set_keyboard(
                          ["it", "de", "en", "es", "fr"]))
     elif query_data == 'cr':
         role = self.tree.change_role(chat_id, topic)
         send_message(super().get_bot(),
                      chat_id,
                      self.tree.get_string(lang, role),
                      self.tree.get_string(lang, "canc"),
                      self.singleton_id.check_time_id(
                          chat_type, self.tree.get_lang(), lang,
                          from_id, chat_id, "teacher") != 0,
                      reply_markup=ReplyKeyboardRemove())
         self.singleton_id.start_fun(chat_id, from_id, chat_type, lang,
                                     self.tree.get_lang(), "teacher",
                                     topic, self.keyboard)