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)
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)
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
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
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
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)
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)
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)
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)
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
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
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)
def finalize(message): t, m, _ = main_menu.create_message() frontend.send_message(message.chat.id, t, reply_markup=m)
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)