Exemplo n.º 1
0
def finalize(message):
    markup = types.InlineKeyboardMarkup()
    item = types.InlineKeyboardButton("В меню",
                                      callback_data='activity_creation_back')
    markup.add(item)

    frontend.send_message(message.chat.id,
                          text='Мероприятие успешно добавлено!',
                          reply_markup=markup)
Exemplo n.º 2
0
def city_step(message):
    city = message.text

    new_users[message.chat.id].city = city

    frontend.send_message(
        message.chat.id, 'Отправьте предпочтительное место для '
        'занятий физической культурой. '
        'Если у Вас не получается это сделать, то зайдите с мобильной версии')
    frontend.register_next_step_handler(message, coord_step)
Exemplo n.º 3
0
def gender_step(message):
    gender = message.text

    if gender in ('Мужской', 'Женский'):
        new_users[message.chat.id].gender = gender
        frontend.send_message(message.chat.id,
                              'Введите город проживания',
                              reply_markup=types.ReplyKeyboardRemove())
        frontend.register_next_step_handler(message, city_step)
    else:
        msg = frontend.reply_to(
            message, 'Кнопка не была нажата. Нажмите кнопку, пожалуйста')
        frontend.register_next_step_handler(msg, gender_step)
        return
Exemplo n.º 4
0
def coord_step(message):
    coord = message.location

    if not (coord is None):
        new_activities[message.chat.id].x = message.location.longitude
        new_activities[message.chat.id].y = message.location.latitude

        frontend.send_message(
            message.chat.id, 'Введите дату и время в формате ДД/ММ/ГГГГ ЧЧ:ММ')
        frontend.register_next_step_handler(message, time_step)
    else:
        msg = frontend.reply_to(message, 'Пожалуйста, отправьте геопозицию')
        frontend.register_next_step_handler(msg, coord_step)
        return
Exemplo n.º 5
0
def distance_step(message):
    if message.text.lower() != "отмена":
        distance = message.text

        if is_digit(distance):
            new_activities[message.chat.id].distance = float(distance)

            frontend.send_message(message.chat.id,
                                  'Отправьте место проведения мероприятия')
            frontend.register_next_step_handler(message, coord_step)
        else:
            msg = frontend.reply_to(
                message,
                'Дистанция должна быть числом. Пожалуйста, повторите попытку')
            frontend.register_next_step_handler(msg, distance_step)
            return
Exemplo n.º 6
0
def launch(message):
    user_id = message.chat.id

    if message.from_user.last_name is None:
        message.from_user.last_name = ""
    user_name = str(message.chat.first_name)
    if message.chat.last_name is not None:
        user_name += message.chat.last_name

    new_user = User(id=user_id,
                    name=user_name,
                    username=f'@{message.chat.username}')

    new_users[user_id] = new_user

    frontend.send_message(message.chat.id,
                          'Здравствуйте! Пожалуйста, введите Ваш возраст')
    frontend.register_next_step_handler(message, age_step)
Exemplo n.º 7
0
def type_step(message):
    if message.text.lower() != 'отмена':
        type = message.text

        if type in ('Ходьба', 'Бег', 'Велопрогулка', 'Велоспорт'):
            new_activities[message.chat.id].type = type

            # !!!
            new_activities[message.chat.id].estimated_time = 0

            frontend.send_message(message.chat.id,
                                  'Введите дистанцию в километрах',
                                  reply_markup=types.ReplyKeyboardRemove())
            frontend.register_next_step_handler(message, distance_step)
        else:
            msg = frontend.reply_to(
                message, 'Кнопка не была нажата. Нажмите кнопку, пожалуйста.'
                'Или напечатайте "Отмена" для отмены')
            frontend.register_next_step_handler(msg, type_step)
Exemplo n.º 8
0
def age_step(message):
    age = message.text

    if not age.isdigit():
        msg = frontend.reply_to(
            message,
            'Возраст должен быть числом. Пожалуйста, повторите попытку')
        frontend.register_next_step_handler(msg, age_step)
        return

    new_users[message.chat.id].age = int(age)

    markup = types.ReplyKeyboardMarkup(resize_keyboard=True,
                                       one_time_keyboard=True)
    markup.add('Мужской', 'Женский')

    frontend.send_message(message.chat.id,
                          'Введите Ваш пол',
                          reply_markup=markup)
    frontend.register_next_step_handler(message, gender_step)
Exemplo n.º 9
0
def launch(user_id):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True,
                                       one_time_keyboard=True)
    markup.add('Ходьба', 'Бег', 'Велопрогулка', 'Велоспорт')
    markup.add('Отмена')

    new_activities[user_id] = Activity()

    message = frontend.send_message(user_id,
                                    'Выберите тип мероприятия',
                                    reply_markup=markup)
    frontend.register_next_step_handler(message, type_step)
Exemplo n.º 10
0
def time_step(message):
    date = message.text

    if is_date_time(date):
        new_activities[message.chat.id].date = datetime.strptime(
            date, '%d/%m/%Y %H:%M')

        msg = frontend.send_message(message.chat.id,
                                    "Придумайте название для мероприятия!")
        frontend.register_next_step_handler(msg, name_step)
    else:
        msg = frontend.reply_to(
            message, 'Пожалуйста, введите дату и время '
            'в формате ДД/ММ/ГГГГ ЧЧ:ММ')
        frontend.register_next_step_handler(msg, time_step)
        return
Exemplo n.º 11
0
def send_buddies(
    message,
    buddies,
):
    user_id = message.chat.id
    user = bot.get_user_by_id(user_id)

    if len(buddies) == 0:
        return False
    else:
        msg = frontend.send_message(user_id, "Загрузка...")
        t, m, _ = user_viewer.create_component(msg.message_id, user, buddies)
        frontend.edit_message_text(t,
                                   msg.chat.id,
                                   msg.message_id,
                                   reply_markup=m)

    return True
Exemplo n.º 12
0
def coord_step(message):
    coord = message.location

    if not (coord is None):
        new_users[message.chat.id].x = message.location.longitude
        new_users[message.chat.id].y = message.location.latitude

        new_user = new_users[message.chat.id]
        bot.create_user(new_user)

        m = frontend.send_message(
            message.from_user.id,
            f'Отлично, {new_user.name}' + f'\nВозраст: {str(new_user.age)}' +
            f'\nПол: {new_user.gender}' + f'\nГород: {new_user.city}')
        finalize(m)

    else:
        msg = frontend.reply_to(message, 'Пожалуйста, отправьте геопозицию')
        frontend.register_next_step_handler(msg, coord_step)
Exemplo n.º 13
0
def finalize(message):
    t, m, _ = main_menu.create_message()
    frontend.send_message(message.chat.id, t, reply_markup=m)
Exemplo n.º 14
0
def route_start(message):
    if not handle_new_user(message):
        logger.info("Sending main_menu to the user from main.py")
        t, m, _ = main_menu.create_message()
        frontend.send_message(message.chat.id, t, reply_markup=m)