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 send_instructions(message): if db_middleware.get_user(message.chat.id) is None: db_middleware.create_user(message.chat.id) bot.send_message(message.chat.id, text='Добро пожаловать!', reply_markup=MAIN_MENU) else: main_menu(message)
def callback_handler(callback_query): user = db_middleware.get_user(callback_query.message.chat.id) ans = callback_query.data if ans == 'y': db_middleware.change_action(user, 'C') get_places(callback_query.message) else: main_menu(callback_query.message)
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 coronavirus_info(message): user = db_middleware.get_user(message.chat.id) data = db_middleware.get_films() text = "" for film in data: text += f'<b>{film["title"]}</b>\n' text += f'{film["url"]}\n\n' bot.send_message(chat_id=user['user_id'], text=text, parse_mode='HTML', disable_web_page_preview=True) main_menu(message)
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_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)
def coronavirus_info(message): user = db_middleware.get_user(message.chat.id) db_middleware.set_step(user, 'coronavirus') data = db_middleware.get_coronavirus_stat() text = "" for region in data: text += f'<b>{region["region"]}</b>\n' text += f'Заражений: {region["infected_all"]} (+{region["infected_add"]})\n' text += f'Смертей: {region["deaths_all"]} (+{region["deaths_add"]})\n' text += f'Выздоровело: {region["recovered_all"]} (+{region["recovered_add"]})\n' text += '\n\n' bot.send_message(chat_id=user['user_id'], text=text, parse_mode='HTML') bot.send_message( chat_id=user['user_id'], text='Хотите получить последние новости, связанные с коронавирусом?', reply_markup=YES_NO_INLINE)
def callback_handler(callback_query): user = db_middleware.get_user(callback_query.message.chat.id) ans = callback_query.data if ans == 'y': data = db_middleware.get_coronavirus_news() text = "" for new in data: text += f'<b><i>{new["title"]}</i></b>\n' text += f'{new["text"]}\n' #text += f'{new["url"]}' text += '\n\n\n' bot.send_message(chat_id=user['user_id'], text=text, parse_mode='HTML', disable_web_page_preview=True) main_menu(callback_query.message)
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_start(message): user = db_middleware.get_user(message.chat.id) bot.send_message(chat_id=user['user_id'], text="Введите название места") db_middleware.set_step(user, 'addplace_title')
None) bot.send_message(message.chat.id, text='Вы в главном меню', reply_markup=MAIN_MENU) ### Блок AddPlace ### @bot.message_handler(func=lambda message: message.text == 'Добавить место' and message.content_type == 'text') def add_place_start(message): user = db_middleware.get_user(message.chat.id) bot.send_message(chat_id=user['user_id'], text="Введите название места") db_middleware.set_step(user, 'addplace_title') @bot.message_handler(func=lambda message: db_middleware.get_user( message.chat.id)['step_id'] == 2) 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)