示例#1
0
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())
示例#2
0
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)
示例#3
0
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())
示例#4
0
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())
示例#5
0
文件: start.py 项目: pykarimov/spbu4u
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")
示例#6
0
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())
示例#7
0
文件: info.py 项目: pykarimov/spbu4u
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)
示例#8
0
文件: week.py 项目: pykarimov/spbu4u
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())
示例#9
0
文件: start.py 项目: pykarimov/spbu4u
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="Открыть сайт"))
示例#10
0
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')
示例#11
0
文件: hide.py 项目: pykarimov/spbu4u
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))
示例#12
0
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")
示例#13
0
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)
    )
示例#14
0
文件: place.py 项目: pykarimov/spbu4u
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))
示例#15
0
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)
示例#16
0
文件: start.py 项目: pykarimov/spbu4u
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())
示例#17
0
文件: days.py 项目: pykarimov/spbu4u
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)
示例#18
0
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"
    )
示例#19
0
文件: rate.py 项目: pykarimov/spbu4u
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
    )
示例#20
0
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")
示例#21
0
文件: days.py 项目: pykarimov/spbu4u
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)