def add_place_location(message): user = db_middleware.get_user(message.chat.id) if user['action'] == 'A': if message.content_type == 'location': data = user['action_data'] data['addplace']['location'] = [ message.location.longitude, message.location.latitude ] db_middleware.set_action_data( (db_middleware.get_user(user['user_id'])), data) bot.send_message(chat_id=user['user_id'], text="Хотите добавить примечение?", reply_markup=YES_NO_REPLY) db_middleware.change_action(user, 'C') else: bot.send_message( chat_id=user['user_id'], text="Отправьте геолокацию, не текстовое сообщение") elif user['action'] == 'C': if 'да' in message.text.lower(): db_middleware.next_step(user) bot.send_message(chat_id=user['user_id'], text="Напишите примечание") db_middleware.change_action(user, 'A') else: db_middleware.next_step(user) add_place_note(message)
def main_menu(message): user = db_middleware.get_user(message.chat.id) db_middleware.set_step(user, 'main') db_middleware.change_action(user, 'A') db_middleware.set_action_data((db_middleware.get_user(user['user_id'])), None) bot.send_message(message.chat.id, text='Вы в главном меню', reply_markup=MAIN_MENU)
def add_place_note(message): user = db_middleware.get_user(message.chat.id) data = user['action_data'] if user['action'] == 'A': data['addplace']['note'] = message.text db_middleware.set_action_data( (db_middleware.get_user(user['user_id'])), data) bot.send_message(chat_id=user['user_id'], text="<b>Вот как будет выглядеть ваша запись:</b>", parse_mode='HTML') db_middleware.next_step(user) send_places(user, [data['addplace']]) bot.send_message(chat_id=user['user_id'], text="<b>Cохранить место?</b>", reply_markup=YES_NO_REPLY, parse_mode='HTML')
def add_place_title(message): user = db_middleware.get_user(message.chat.id) if user['action'] == 'A': db_middleware.set_action_data( ((db_middleware.get_user(user['user_id']))), {'addplace': { 'title': message.text }}) bot.send_message(chat_id=user['user_id'], text="Хотите добавить фото?", reply_markup=YES_NO_REPLY) db_middleware.change_action(user, 'C') elif user['action'] == 'C': if 'да' in message.text.lower(): db_middleware.next_step(user) db_middleware.change_action(user, 'A') bot.send_message(chat_id=user['user_id'], text="Отправьте фото") else: db_middleware.next_step(user) bot.send_message(chat_id=user['user_id'], text="Хотите добавить геолокацию места?", reply_markup=YES_NO_REPLY)
def get_places(message): user = db_middleware.get_user(message.chat.id) if user['action'] == 'A': db_middleware.set_step(user, 'getplace') data = db_middleware.get_places(user, True) count = data['count'] places = data['places'] send_places(user, places) if count > 5: db_middleware.set_action_data( (db_middleware.get_user(user['user_id'])), {'getplace': { 'count': count, 'offset': 5 }}) bot.send_message(chat_id=user['user_id'], text='Хотите вывести больше мест?', reply_markup=YES_NO_INLINE) else: bot.send_message(chat_id=user['user_id'], text='<b>У вас больше нет добавленных мест</b>', parse_mode='HTML') main_menu(message) else: offset = user['action_data']['getplace']['offset'] count = user['action_data']['getplace']['count'] data = db_middleware.get_places(user, False, offset) places = data['places'] send_places(user, places) if offset + 5 >= count: bot.send_message(chat_id=user['user_id'], text='<b>У вас больше нет добавленных мест</b>', parse_mode='HTML') main_menu(message) else: bot.send_message(chat_id=user['user_id'], text='Хотите вывести больше мест?', reply_markup=YES_NO_INLINE)
def add_place_confirm(message): user = db_middleware.get_user(message.chat.id) data = user['action_data'] if 'да' in message.text.lower(): try: db_middleware.add_place(user, data) data['completed'] = True db_middleware.set_action_data(user, data) bot.send_message(chat_id=user['user_id'], text="<b>Место сохранено</b>", parse_mode='HTML') except: bot.send_message( chat_id=user['user_id'], text= "<b>Что-то пошло не так. Информация о месте не была сохранена</b>", parse_mode='HTML') main_menu(message) else: bot.send_message(chat_id=user['user_id'], text="<b>Информация о месте не была сохранена</b>", parse_mode='HTML') main_menu(message)
def add_place_photo(message): user = db_middleware.get_user(message.chat.id) if user['action'] == 'A': if message.content_type == 'photo': data = user['action_data'] try: file_id = message.photo[-1].file_id data['addplace']['photo'] = file_id db_middleware.set_action_data( (db_middleware.get_user(user['user_id'])), data) bot.send_message(chat_id=user['user_id'], text="Хотите добавить геолокацию места?", reply_markup=YES_NO_REPLY) db_middleware.change_action(user, 'C') except: bot.send_message( chat_id=user['user_id'], text="<b>Что-то пошло не так. Отправьте фото ещё раз</b>", parse_mode='HTML') else: bot.send_message(chat_id=user['user_id'], text="Отправьте фото, не текстовое сообщение") elif user['action'] == 'C': if 'да' in message.text.lower(): db_middleware.next_step(user) db_middleware.change_action(user, 'A') bot.send_message( chat_id=user['user_id'], text="Отправьте геолокацию\n (Отправляйте геолокацию," " выбранную вручную, не с помощью поиска/предложенных мест. Такие сообщения пока не поддерживаются ботом.)" ) else: db_middleware.next_step(user) bot.send_message(chat_id=user['user_id'], text="Хотите добавить примечание?", reply_markup=YES_NO_REPLY)