Example #1
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)
Example #2
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
Example #3
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
Example #4
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
Example #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
Example #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)
Example #7
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)
Example #8
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)
Example #9
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)