def to_university_handler(message): bot.send_chat_action(message.chat.id, "typing") if message.text.title() == "В Универ": from_station = func.get_station_code(message.chat.id, is_home=True) to_station = func.get_station_code(message.chat.id, is_home=False) else: from_station = func.get_station_code(message.chat.id, is_home=False) to_station = func.get_station_code(message.chat.id, is_home=True) server_datetime = datetime.today() + server_timedelta data = get_yandex_timetable_data(from_station, to_station, server_datetime) answer = data["answer"] update_keyboard = InlineKeyboardMarkup(True) if data["is_OK"]: if data["is_tomorrow"]: bot.send_message(message.chat.id, emoji["warning"] + " На сегодня нет электричек") update_keyboard.row(*[ InlineKeyboardButton(text=name, callback_data=name) for name in ["Все на завтра"] ]) else: update_keyboard.row(*[ InlineKeyboardButton(text=name, callback_data=name) for name in ["Оставшиеся", "Обновить"] ]) bot.send_message(message.chat.id, answer, reply_markup=update_keyboard, parse_mode='HTML', disable_web_page_preview=True)
def early_tomorrow_suburbans_handler(call_back): from_to_stations = call_back.message.text.split("\n\n")[0].split(" => ") from_station_title = from_to_stations[0] to_station_title = from_to_stations[1] from_station = all_stations[from_station_title] to_station = all_stations[to_station_title] server_datetime = datetime.combine( (datetime.today() + timedelta(days=1)).date(), time()) data = get_yandex_timetable_data(from_station, to_station, server_datetime, limit=5) answer = data["answer"] update_keyboard = InlineKeyboardMarkup(True) if data["is_OK"]: update_keyboard.row(*[ InlineKeyboardButton(text=name, callback_data=name) for name in ["Все на завтра"] ]) try: bot.edit_message_text(text=answer, chat_id=call_back.message.chat.id, message_id=call_back.message.message_id, parse_mode="HTML", reply_markup=update_keyboard) except ApiException: pass
def less_suburbans_handler(call_back): from_to_stations = call_back.message.text.split("\n\n")[0].split(" => ") from_station_title = from_to_stations[0] to_station_title = from_to_stations[1] from_station = all_stations[from_station_title] to_station = all_stations[to_station_title] server_datetime = datetime.today() + server_timedelta data = get_yandex_timetable_data(from_station, to_station, server_datetime) answer = data["answer"] update_keyboard = InlineKeyboardMarkup(True) if data["is_OK"]: if data["is_tomorrow"]: inline_answer = emoji["warning"] + " На сегодня нет электричек" bot.answer_callback_query(call_back.id, inline_answer, show_alert=True) update_keyboard.row(*[ InlineKeyboardButton(text=name, callback_data=name) for name in ["Все на завтра"] ]) else: update_keyboard.row(*[ InlineKeyboardButton(text=name, callback_data=name) for name in ["Оставшиеся", "Обновить"] ]) try: bot.edit_message_text(text=answer, chat_id=call_back.message.chat.id, message_id=call_back.message.message_id, parse_mode="HTML", reply_markup=update_keyboard) except ApiException: pass
def build_trail_handler(call_back): bot_msg = bot.edit_message_text(text="{0}\U00002026".format( choice(loading_text["ya_timetable"])), chat_id=call_back.message.chat.id, message_id=call_back.message.message_id) from_station_title = call_back.message.text.split("\n")[0].split(": ")[-1] to_station_title = call_back.message.text.split("\n")[1].split(": ")[-1] from_station = all_stations[from_station_title] to_station = all_stations[to_station_title] if call_back.data == "Завтра": server_datetime = datetime.combine( (datetime.today() + timedelta(days=1)).date(), time()) limit = 7 else: server_datetime = datetime.today() + server_timedelta limit = 3 data = get_yandex_timetable_data(from_station, to_station, server_datetime, limit) answer = data["answer"] update_keyboard = InlineKeyboardMarkup(True) if data["is_OK"]: if call_back.data == "Завтра" or data["is_tomorrow"]: if data["is_tomorrow"]: inline_answer = emoji["warning"] + " На сегодня нет электричек" bot.answer_callback_query(call_back.id, inline_answer, show_alert=True) update_keyboard.row(*[ InlineKeyboardButton(text=name, callback_data=name) for name in ["Все на завтра"] ]) else: update_keyboard.row(*[ InlineKeyboardButton(text=name, callback_data=name) for name in ["Оставшиеся", "Обновить"] ]) bot.edit_message_text(text=answer, chat_id=call_back.message.chat.id, message_id=bot_msg.message_id, reply_markup=update_keyboard, parse_mode="HTML")