def get_date(message): if message.text == '/exit': return_to_menu() elif re.fullmatch(r'\d{1,2}\s\d{1,2}\s\d{1,2}', message.text): in_date = message.text.split() cw_ = Course.Classwork(call.data['c_id'], call.data['cw_id']) try: date = datetime.date(2000 + int(in_date[0]), int(in_date[1]), int(in_date[2])).strftime('%d %b %Y') except ValueError: botHelper.send_mes( msgs[get_lang(call.message.chat.id)]['teacher'] ['management']['wrong_input'], message.messasge_id) bot.register_next_step_handler(message, get_date) else: cw_.date = date cw_.name = date return_to_menu() else: botHelper.send_mes( msgs[get_lang(call.message.chat.id)]['teacher']['management'] ['wrong_input'], message.messasge_id) bot.register_next_step_handler(message, get_date)
def announce(call): def return_to_menu(): new_mes = botHelper.send_mes('empty', call.message.chat.id) botHelper.renew_menu(call, new_mes) back(call, True) def cancel(): botHelper.send_mes(msgs[lang]['teacher']['announce']['cancel']) return_to_menu() def send(): course_ = Course.Course(call.data['c_id']) for part in course_.participants: try: botHelper.send_mes( msgs[lang]['teacher']['announce']['got_announce'].format( course_.name), part.id) botHelper.send_mes(announce_info['text'], part.id) for file, caption in zip(announce_info['file'], announce_info['file_caption']): bot.send_document(part.id, file, caption=caption) except TBotApiException: continue botHelper.send_mes(msgs[lang]['teacher']['announce']['sent'], call.message.chat.id) return_to_menu() def get_file(message): if message.text == '/exit': cancel() elif message.text == '/send': send() else: if message.document: announce_info['file'].append(message.document.file_id) announce_info['file_caption'].append(message.caption) bot.register_next_step_handler(message, get_file) def get_text(message): if message.text == '/exit': cancel() else: announce_info['text'] = message.text botHelper.send_mes(msgs[lang]['teacher']['announce']['files'], call.message.chat.id) bot.register_next_step_handler(message, get_file) call.data = json.loads(call.data) lang = get_lang(call.message.chat.id) announce_info = {'text': '', 'file': [], 'file_caption': []} botHelper.edit_mes(msgs[lang]['teacher']['announce']['begin'], call) botHelper.send_mes(msgs[lang]['teacher']['announce']['input_text'], call.message.chat.id) bot.register_next_step_handler(call.message, get_text)
def create(message): l = [message.text.split('\n')] command = "INSERT INTO `all`(`user_id`, `event_id`, `name`, `date`, `time`, `adress`, `theme`, `description`)" \ " VALUES('{}, {}, {}, {}, {}, {}, {}, {}')".format(message.from_user.id, cnt, l[0], l[1], l[2], l[3], the, l[4]) cursor.execute(command) db.commit() bot.send_message(message.chat.id, 'ГОТОВО!') bot.register_next_step_handler(message, start(False))
def get_text(message): if message.text == '/exit': cancel() else: announce_info['text'] = message.text botHelper.send_mes(msgs[lang]['teacher']['announce']['files'], call.message.chat.id) bot.register_next_step_handler(message, get_file)
def get_file(message): if message.text == '/exit': cancel() elif message.text == '/send': send() else: if message.document: announce_info['file'].append(message.document.file_id) announce_info['file_caption'].append(message.caption) bot.register_next_step_handler(message, get_file)
def name(msg): if re.fullmatch(r"[a-zA-Zа-яА-Я]+ [a-zA-Zа-яА-Я ]+", msg.text): user.name = msg.text menu_command(msg) else: botHelper.send_mes( msgs[lang]['common']['registration']['wrong_name'], message.chat.id) bot.register_next_step_handler(message, name)
def get_hmark(message): if message.text == '/exit': cancel() else: if message.text != '0' and re.fullmatch(r'\d+', message.text): task_info['hmark'] = int(message.text) create() else: botHelper.send_mes( msgs[lang]['teacher']['task_create']['error_max_mark'], call.message.chat.id) bot.register_next_step_handler(message, get_hmark)
def get_mark(message): if message.text == '/exit': return_to_menu() elif message.text == '-1': mark.value = None elif re.fullmatch(r'\d+', message.text): if int(message.text) <= task_.highest_mark: mark.value = int(message.text) return_to_menu() else: botHelper.send_mes(msgs[get_lang(call.message.chat.id)] ['teacher']['management']['error_mark']) bot.register_next_step_handler(message, get_mark) else: botHelper.send_mes(msgs[get_lang( call.message.chat.id)]['teacher']['management']['wrong_input']) bot.register_next_step_handler(message, get_mark)
def get_desc(message): if message.text == '/exit': cancel() else: if len(message.text) <= UI.constants.TASK_DESC_MAX_LENGTH: if message.text != '/no': task_info['desc'] += message.text botHelper.send_mes( msgs[lang]['teacher']['task_create']['input_max_mark'], call.message.chat.id) bot.register_next_step_handler(message, get_hmark) else: botHelper.send_mes( msgs[lang]['teacher']['task_create'] ['error_length'].format(UI.constants.TASK_DESC_MAX_LENGTH), call.message.chat.id) bot.register_next_step_handler(message, get_desc)
def get_name(message): if message.text == '/exit': cancel() return_to_menu() else: if len(message.text) <= UI.constants.TASK_NAME_MAX_LENGTH: if message.text != '/no': task_info['name'] = message.text botHelper.send_mes( msgs[lang]['teacher']['task_create']['input_desc'], call.message.chat.id) bot.register_next_step_handler(message, get_desc) else: botHelper.send_mes( msgs[lang]['teacher']['task_create'] ['error_length'].format(UI.constants.TASK_NAME_MAX_LENGTH), call.message.chat.id) bot.register_next_step_handler(message, get_name)
def get_user_command(message): if message.text == '/name': text = msgs[lang]['teacher']['course_create']['name_input'].format( UI.constants.COURSE_NAME_LENGTH_MIN, UI.constants.COURSE_NAME_LENGTH_MAX) botHelper.send_mes(text, chat_id) bot.register_next_step_handler(message, name) elif message.text == '/desc': text = msgs[lang]['teacher']['course_create']['desc_input'].format( UI.constants.COURSE_DESC_LENGTH_MIN, UI.constants.COURSE_DESC_LENGTH_MAX) botHelper.send_mes(text, chat_id) bot.register_next_step_handler(message, desc) elif message.text == '/lock': text = msgs[lang]['teacher']['course_create']['lock_input'] botHelper.send_mes(text, chat_id) bot.register_next_step_handler(message, lock) elif message.text == '/create': if not course_info['name'] or not course_info['desc']: botHelper.send_mes( msgs[lang]['teacher']['course_create']['name_and_desc'], chat_id) bot.register_next_step_handler(message, get_user_command) else: c = Course.Course(owner_id=chat_id, name=course_info['name']) c.description = course_info['desc'] c.entry_restriction = course_info['lock'] botHelper.send_mes( msgs[lang]['teacher']['course_create']['created'], chat_id) menu_command(message) elif message.text == '/exit': botHelper.send_mes( msgs[lang]['teacher']['course_create']['canceled'], chat_id) menu_command(message) else: botHelper.send_mes( msgs[lang]['teacher']['course_create']['wrong_command'], chat_id) bot.register_next_step_handler(message, get_user_command)
def do_tsk(call): def return_to_menu(): new_mes = botHelper.send_mes('empty', call.message.chat.id) botHelper.renew_menu(call, new_mes) back(call, True) def get_mark(message): if message.text == '/exit': return_to_menu() elif message.text == '-1': mark.value = None elif re.fullmatch(r'\d+', message.text): if int(message.text) <= task_.highest_mark: mark.value = int(message.text) return_to_menu() else: botHelper.send_mes(msgs[get_lang(call.message.chat.id)] ['teacher']['management']['error_mark']) bot.register_next_step_handler(message, get_mark) else: botHelper.send_mes(msgs[get_lang( call.message.chat.id)]['teacher']['management']['wrong_input']) bot.register_next_step_handler(message, get_mark) call.data = json.loads(call.data) task_ = Course.Task(call.data['c_id'], call.data['t_id']) mark = Course.Mark(call.data['c_id'], call.data['t_id'], call.data['u_id']) text = msgs['mark_one'].format(task=task_.name, user=User.User(call.data['u_id']).name, mark=mark.value, max=task_.highest_mark) botHelper.edit_mes(text, call) bot.register_next_step_handler(call.message, get_mark)
def idle(): if course_info['lock'] is None: t = None else: t = UI.to_dtime(course_info['lock']) if course_info['name'] and course_info['desc']: c = creating['valid'] elif course_info['name'] and not course_info['desc']: c = creating['desc'] elif not course_info['name'] and course_info['desc']: c = creating['name'] else: c = creating['both'] text = msgs[get_lang( chat_id)]['teacher']['course_create']['new_course'].format( name=course_info['name'], desc=course_info['desc'], lock=t, create=c) msg = botHelper.send_mes(text, chat_id) bot.register_next_step_handler(msg, get_user_command)
def registration(message): def name(msg): if re.fullmatch(r"[a-zA-Zа-яА-Я]+ [a-zA-Zа-яА-Я ]+", msg.text): user.name = msg.text menu_command(msg) else: botHelper.send_mes( msgs[lang]['common']['registration']['wrong_name'], message.chat.id) bot.register_next_step_handler(message, name) lang = get_lang(message.chat.id) if User.User(message.chat.id).type_u == 'unlogined': try: user = User.User(id=message.chat.id, username=message.from_user.username, name='noname') botHelper.send_mes(msgs[lang]['common']['registration']['teacher'], message.chat.id) except User.TeacherAccessDeniedError: user = User.User(id=message.chat.id, name='noname', group='1', email='*****@*****.**') botHelper.send_mes( msgs[lang]['common']['registration']['mere_human'], message.chat.id) botHelper.send_mes(msgs[lang]['common']['registration']['input'], message.chat.id) bot.register_next_step_handler(message, name) else: botHelper.send_mes(msgs[lang]['common']['registration']['already'], message.chat.id)
def theme(message): global the the = message.text bot.send_message(message.chat.id, "Напишите информацию о вашем событии по шаблону \n Название \n Дата \n Время " "\n Место \n проведения \n Описание") bot.register_next_step_handler(message, create)
def new_task(call): def return_to_menu(): new_mes = botHelper.send_mes('empty', call.message.chat.id) botHelper.renew_menu(call, new_mes) back(call, True) def cancel(): botHelper.send_mes(msgs[lang]['teacher']['task_create']['canceled'], call.message.chat.id) return_to_menu() def create(): name = task_info['name'] if not name: name = msgs[lang]['teacher']['task_create']['name'] + str( len(Course.Course(call.data['c_id']).tasks) + 1) Course.Task(course_id=call.data['c_id'], name=name, description=task_info['desc'].format(task_info['hmark']), highest_mark=task_info['hmark']) botHelper.send_mes(msgs[lang]['teacher']['task_create']['created'], call.message.chat.id) return_to_menu() def get_hmark(message): if message.text == '/exit': cancel() else: if message.text != '0' and re.fullmatch(r'\d+', message.text): task_info['hmark'] = int(message.text) create() else: botHelper.send_mes( msgs[lang]['teacher']['task_create']['error_max_mark'], call.message.chat.id) bot.register_next_step_handler(message, get_hmark) def get_desc(message): if message.text == '/exit': cancel() else: if len(message.text) <= UI.constants.TASK_DESC_MAX_LENGTH: if message.text != '/no': task_info['desc'] += message.text botHelper.send_mes( msgs[lang]['teacher']['task_create']['input_max_mark'], call.message.chat.id) bot.register_next_step_handler(message, get_hmark) else: botHelper.send_mes( msgs[lang]['teacher']['task_create'] ['error_length'].format(UI.constants.TASK_DESC_MAX_LENGTH), call.message.chat.id) bot.register_next_step_handler(message, get_desc) def get_name(message): if message.text == '/exit': cancel() return_to_menu() else: if len(message.text) <= UI.constants.TASK_NAME_MAX_LENGTH: if message.text != '/no': task_info['name'] = message.text botHelper.send_mes( msgs[lang]['teacher']['task_create']['input_desc'], call.message.chat.id) bot.register_next_step_handler(message, get_desc) else: botHelper.send_mes( msgs[lang]['teacher']['task_create'] ['error_length'].format(UI.constants.TASK_NAME_MAX_LENGTH), call.message.chat.id) bot.register_next_step_handler(message, get_name) call.data = json.loads(call.data) lang = get_lang(call.message.chat.id) task_info = { 'name': '', 'desc': msgs[lang]['teacher']['task_create']['max_mark'], 'hmark': 0 } botHelper.edit_mes(msgs[lang]['teacher']['task_create']['begin'], call) botHelper.send_mes(msgs[lang]['teacher']['task_create']['input_name'], call.message.chat.id) bot.register_next_step_handler(call.message, get_name)