diff --git a/app/core/bot.py b/app/core/bot.py index c3147ef..2ad6703 100644 --- a/app/core/bot.py +++ b/app/core/bot.py @@ -26,33 +26,41 @@ def get_keyboard() -> types.InlineKeyboardMarkup: markup = types.InlineKeyboardMarkup() markup.row( - types.InlineKeyboardButton('Дом -> Офис', callback_data=stations_cb.new(direction='home->office')), - types.InlineKeyboardButton('Офис -> Дом', callback_data=stations_cb.new(direction='office->home')), + types.InlineKeyboardButton( + 'Дом -> Офис', callback_data=stations_cb.new(direction='home->office') + ), + types.InlineKeyboardButton( + 'Офис -> Дом', callback_data=stations_cb.new(direction='office->home') + ), ) return markup @dispatcher.callback_query_handler(stations_cb.filter(direction='home->office')) -async def home_office(query: types.CallbackQuery, callback_data: dict[str, str]) -> SendMessage: +async def home_office( + query: types.CallbackQuery, callback_data: dict[str, str] +) -> SendMessage: text = parse_site( driver=driver, url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/' - '?l=masstransit&ll=37.527754%2C55.823507&tab=overview&z=21', - message='Остановка Б. Академическая ул, д. 15' + '?l=masstransit&ll=37.527754%2C55.823507&tab=overview&z=21', + message='Остановка Б. Академическая ул, д. 15', ) return SendMessage(query.message.chat.id, text, reply_markup=get_keyboard()) @dispatcher.callback_query_handler(stations_cb.filter(direction='office->home')) -async def office_home(query: types.CallbackQuery, callback_data: dict[str, str]) -> SendMessage: +async def office_home( + query: types.CallbackQuery, callback_data: dict[str, str] +) -> SendMessage: text = parse_site( driver=driver, url='https://yandex.ru/maps/213/moscow/stops/stop__9640288/?' - 'l=masstransit&ll=37.505338%2C55.800160&tab=overview&z=211', - message='Остановка Улица Алабяна' + 'l=masstransit&ll=37.505338%2C55.800160&tab=overview&z=211', + message='Остановка Улица Алабяна', ) return SendMessage(query.message.chat.id, text, reply_markup=get_keyboard()) @@ -72,9 +80,14 @@ async def morning_bus_mailing(chat_ids: list[int]) -> None: text = parse_site( driver=driver, url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/' - '?l=masstransit&ll=37.527754%2C55.823507&tab=overview&z=21', - message='Остановка Б. Академическая ул, д. 15' + '?l=masstransit&ll=37.527754%2C55.823507&tab=overview&z=21', + message='Остановка Б. Академическая ул, д. 15', ) await asyncio.gather( - *[bot.send_message(chat_id=chat_id, text=text, parse_mode=types.ParseMode.HTML) for chat_id in chat_ids] + *[ + bot.send_message( + chat_id=chat_id, text=text, parse_mode=types.ParseMode.HTML + ) + for chat_id in chat_ids + ] ) diff --git a/app/core/logger.py b/app/core/logger.py index a3d755d..77bb6ce 100644 --- a/app/core/logger.py +++ b/app/core/logger.py @@ -2,6 +2,9 @@ import sys from loguru import logger logger.remove() -logger.add(sink=sys.stdout, colorize=True, level='DEBUG', - format="{time:DD.MM.YYYY HH:mm:ss} | {level} | " - "{message}") +logger.add( + sink=sys.stdout, + colorize=True, + level='DEBUG', + format="{time:DD.MM.YYYY HH:mm:ss} | {level} | {message}", +) diff --git a/app/core/parse_web.py b/app/core/parse_web.py index 26d42d1..bd6a12f 100644 --- a/app/core/parse_web.py +++ b/app/core/parse_web.py @@ -15,8 +15,10 @@ from settings import BASE_DIR, GECKO_DRIVER_VERSION def download_gecko_driver(): - gecko_driver = f'https://github.com/mozilla/geckodriver/releases/download/v{GECKO_DRIVER_VERSION}/' \ - f'geckodriver-v{GECKO_DRIVER_VERSION}-linux64.tar.gz' + gecko_driver = ( + f'https://github.com/mozilla/geckodriver/releases/download/v{GECKO_DRIVER_VERSION}/' + f'geckodriver-v{GECKO_DRIVER_VERSION}-linux64.tar.gz' + ) if not Path(f'{BASE_DIR}/geckodriver').exists(): logger.info(f'Downloading gecodriver v {GECKO_DRIVER_VERSION}...') @@ -44,20 +46,30 @@ def configure_firefox_driver(private_window: bool = False) -> WebDriver: def parse_site(driver: WebDriver, url: str, message: str) -> str: driver.get(url) time.sleep(4) - elements = driver.find_elements(by='class name', value='masstransit-vehicle-snippet-view') + elements = driver.find_elements( + by='class name', value='masstransit-vehicle-snippet-view' + ) bus_300, bus_t19 = None, None bus_300_arrival, bus_t19_arrival = None, None for element in elements: try: - bus_300 = element.find_element(by='css selector', value='[aria-label="300"]') - bus_300_arrival = element.find_element(by='class name', value='masstransit-prognoses-view__title-text') + bus_300 = element.find_element( + by='css selector', value='[aria-label="300"]' + ) + bus_300_arrival = element.find_element( + by='class name', value='masstransit-prognoses-view__title-text' + ) except NoSuchElementException: pass try: - bus_t19 = element.find_element(by='css selector', value='[aria-label="т19"]') - bus_t19_arrival = element.find_element(by='class name', value='masstransit-prognoses-view__title-text') + bus_t19 = element.find_element( + by='css selector', value='[aria-label="т19"]' + ) + bus_t19_arrival = element.find_element( + by='class name', value='masstransit-prognoses-view__title-text' + ) except NoSuchElementException: pass answer = f'{message}\n\n' diff --git a/app/core/scheduler.py b/app/core/scheduler.py index 6af6d37..c53deb6 100644 --- a/app/core/scheduler.py +++ b/app/core/scheduler.py @@ -1,14 +1,17 @@ from core.bot import morning_bus_mailing cron_jobs = [ - {'trigger': 'cron', 'day_of_week': 'mon-fri', 'hour': 8, 'minute': 59, 'second': 0}, - {'trigger': 'cron', 'day_of_week': 'mon-fri', 'hour': 9, 'minute': 4, 'second': 0}, - {'trigger': 'cron', 'day_of_week': 'mon-fri', 'hour': 9, 'minute': 9, 'second': 0}, - ] + {'trigger': 'cron', 'day_of_week': 'mon-fri', 'hour': 8, 'minute': 59, 'second': 0}, + {'trigger': 'cron', 'day_of_week': 'mon-fri', 'hour': 9, 'minute': 4, 'second': 0}, + {'trigger': 'cron', 'day_of_week': 'mon-fri', 'hour': 9, 'minute': 9, 'second': 0}, +] -user_chat_ids = {'chat_ids': [417070387, # me - 431571617, # Lenok - ]} +user_chat_ids = { + 'chat_ids': [ + 417070387, # me + 431571617, # Lenok + ] +} def asyncio_schedule() -> None: diff --git a/app/delete.py b/app/delete.py deleted file mode 100644 index e6d64aa..0000000 --- a/app/delete.py +++ /dev/null @@ -1,3 +0,0 @@ -from pathlib import Path - -print(Path(__file__).parent.parent) \ No newline at end of file