def select_educator(message): bot.send_chat_action(message.chat.id, "typing") name = message.text.strip(". ") if not nf.is_correct_educator_name(name): error_answer = "Недопустимые символы!" is_error = True else: data = spbu.search_educator(name) if not data["Educators"] or len(data["Educators"]) > 10: if data["Educators"]: error_answer = "Слишком много преподавателей!" else: error_answer = "Никого не найдено!" is_error = True else: is_error = False error_answer = "" bot.send_message( chat_id=message.chat.id, text="Готово!", reply_markup=ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=False).row( "Завершить", "Поддержка")) bot.send_message(chat_id=message.chat.id, text="Выбери преподавателя:", reply_markup=found_educators_keyboard(data)) if is_error: bot.send_message(chat_id=message.chat.id, text=error_answer) bot.send_message(chat_id=message.chat.id, text=ask_to_input_educator_register, reply_markup=ForceReply())
def fast_trail_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") if message.text.title() == "В Универ": from_code = user.home_station_code to_code = user.univer_station_code else: from_code = user.univer_station_code to_code = user.home_station_code answer, is_tomorrow, is_error = nf.create_suburbans_answer( from_code=from_code, to_code=to_code, for_date=date.today()) if not is_error: if is_tomorrow: bot.send_message(chat_id=user.tg_id, text=emoji["warning"] + " На сегодня нет электричек") inline_keyboard = update_keyboard(for_tomorrow=is_tomorrow) else: inline_keyboard = InlineKeyboardMarkup() bot.send_message(chat_id=user.tg_id, text=answer, reply_markup=inline_keyboard, parse_mode='HTML', disable_web_page_preview=True)
def schedule_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") answer = "Меню расписания" bot.send_message(chat_id=user.tg_id, text=answer, reply_markup=schedule_keyboard())
def home_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") answer = "Главное меню" bot.send_message(chat_id=user.tg_id, text=answer, reply_markup=main_keyboard())
def problem_text_handler(message): bot.send_chat_action(message.chat.id, "typing") bot.send_message(chat_id=message.chat.id, text=support_answer, disable_web_page_preview=True, parse_mode="HTML")
def settings_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") answer = "Настройки" bot.send_message(chat_id=user.tg_id, text=answer, reply_markup=settings_keyboard())
def help_handler(message): bot.send_chat_action(message.chat.id, "typing") bot.send_message(chat_id=message.chat.id, text=briefly_info_answer, parse_mode="HTML", reply_markup=special_thanks_keyboard(), disable_web_page_preview=True)
def week_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") bot.send_message(chat_id=user.tg_id, text="Выбери день:", reply_markup=week_day_keyboard())
def alt_reg_handler(message): bot.send_chat_action(message.chat.id, "typing") bot.send_message(chat_id=message.chat.id, text=alt_reg_answer, disable_web_page_preview=True, parse_mode="HTML", reply_markup=link_button(text="Открыть сайт"))
def schedule_editor_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") answer = "Редактор расписания" bot.send_message(chat_id=user.tg_id, text=answer, reply_markup=schedule_editor_keyboard(), parse_mode='HTML')
def hide_lesson_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") bot.send_message(chat_id=user.tg_id, text=hide_answer, reply_markup=week_day_keyboard(for_editor=True))
def educator_schedule_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") bot.send_message(chat_id=user.tg_id, text=ask_to_input_educator, reply_markup=ForceReply(), parse_mode="HTML")
def sending_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") bot.send_message( chat_id=user.tg_id, text=sending_info_answer, parse_mode="HTML", reply_markup=sending_keyboard(user.is_subscribed) )
def place_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") bot.send_message( chat_id=user.tg_id, text=place_editor_answer.format( "Полностью" if user.is_full_place else "Только аудитория"), parse_mode="HTML", reply_markup=place_keyboard(user.is_full_place))
def suburban_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") answer = "Меню расписания электричек\n\n" \ "Данные предоставлены сервисом " \ "<a href = 'http://rasp.yandex.ru/'>Яндекс.Расписания</a>" bot.send_message(chat_id=user.tg_id, text=answer, reply_markup=suburban_keyboard(), parse_mode='HTML', disable_web_page_preview=True)
def exit_handler(message): bot.send_chat_action(message.chat.id, "typing") user = User.query.filter_by(tg_id=message.chat.id).first() if user: user.clear_all() db.session.delete(user) db.session.commit() bot.send_message(chat_id=message.chat.id, text="До встречи!", reply_markup=ReplyKeyboardRemove())
def interval_schedule_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") answers = user.create_answers_for_interval( *nf.text_to_interval(message.text.lower())) if len(answers) > max_answers_count: answers = [interval_exceeded_answer] for answer in answers: nf.tgbot_send_long_message(bot, answer, user.tg_id)
def templates_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") answer = templates_answer.format( user.get_current_status_title() ) bot.send_message( chat_id=user.tg_id, text=answer, reply_markup=status_templates_keyboard(), parse_mode="HTML" )
def users_callback_handler(message): user = g.current_tbot_user bot.send_chat_action(message.chat.id, "typing") bot.forward_message( chat_id=ids["my"], from_chat_id=user.tg_id, message_id=message.message_id ) bot.send_message( chat_id=user.tg_id, text="Записал", reply_markup=main_keyboard(), reply_to_message_id=message.message_id )
def write_educator_name_handler(message): user = g.current_tbot_user bot.send_chat_action(user.tg_id, "typing") name = message.text.strip(". ") if not nf.is_correct_educator_name(name): answer = "Недопустимые символы." bot.send_message(chat_id=user.tg_id, text=answer, reply_markup=schedule_keyboard()) return try: educators_data = spbu.search_educator(name) except spbu.ApiException: answer = "Во время выполнения запроса произошла ошибка." bot.send_message(chat_id=user.tg_id, text=answer, reply_markup=schedule_keyboard()) return if not educators_data["Educators"]: answer = "Никого не найдено." bot.send_message(chat_id=user.tg_id, text=answer, reply_markup=schedule_keyboard()) elif len(educators_data["Educators"]) > 10: answer = "Слишком много преподавателей.\n" \ "Пожалуйста, <b>уточни</b>." bot.send_message(chat_id=user.tg_id, text=answer, parse_mode="HTML") bot.send_message(chat_id=user.tg_id, text=ask_to_input_educator, reply_markup=ForceReply(), parse_mode="HTML") else: bot.send_message(chat_id=user.tg_id, text="Готово!", reply_markup=schedule_keyboard()) bot.send_message( chat_id=user.tg_id, text="{0} Найденные преподаватели:".format(emoji["mag_right"]), reply_markup=found_educators_keyboard(educators_data, need_cancel=True), parse_mode="HTML")
def day_schedule_handler(message): user = g.current_tbot_user bot.send_chat_action(message.chat.id, "typing") if message.text.title() == "Сегодня": for_date = date.today() elif message.text.title() == "Завтра": for_date = date.today() + timedelta(days=1) elif message.text.title() in week_day_titles.keys(): for_date = nf.get_date_by_weekday_title( title=week_day_titles[message.text.title()]) elif message.text.title() in week_day_titles.values(): for_date = nf.get_date_by_weekday_title(title=message.text.title()) else: for_date = nf.text_to_date(message.text.lower()) answer = user.create_answer_for_date(for_date) nf.tgbot_send_long_message(bot, answer, user.tg_id)