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)
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)
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)
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())
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)
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))))
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)
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)
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)
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)))
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)
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)
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)
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)
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
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)
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]
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
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"))
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)
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)
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)
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)