black reformated

This commit is contained in:
Dmitry Afanasyev 2022-08-13 15:30:40 +03:00
parent 7ac33d13a8
commit 43c2144a84
5 changed files with 59 additions and 31 deletions

View File

@ -26,33 +26,41 @@ def get_keyboard() -> types.InlineKeyboardMarkup:
markup = types.InlineKeyboardMarkup() markup = types.InlineKeyboardMarkup()
markup.row( markup.row(
types.InlineKeyboardButton('Дом -> Офис', callback_data=stations_cb.new(direction='home->office')), types.InlineKeyboardButton(
types.InlineKeyboardButton('Офис -> Дом', callback_data=stations_cb.new(direction='office->home')), 'Дом -> Офис', callback_data=stations_cb.new(direction='home->office')
),
types.InlineKeyboardButton(
'Офис -> Дом', callback_data=stations_cb.new(direction='office->home')
),
) )
return markup return markup
@dispatcher.callback_query_handler(stations_cb.filter(direction='home->office')) @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( text = parse_site(
driver=driver, driver=driver,
url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/' url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/'
'?l=masstransit&ll=37.527754%2C55.823507&tab=overview&z=21', '?l=masstransit&ll=37.527754%2C55.823507&tab=overview&z=21',
message='Остановка Б. Академическая ул, д. 15' message='Остановка Б. Академическая ул, д. 15',
) )
return SendMessage(query.message.chat.id, text, reply_markup=get_keyboard()) return SendMessage(query.message.chat.id, text, reply_markup=get_keyboard())
@dispatcher.callback_query_handler(stations_cb.filter(direction='office->home')) @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( text = parse_site(
driver=driver, driver=driver,
url='https://yandex.ru/maps/213/moscow/stops/stop__9640288/?' url='https://yandex.ru/maps/213/moscow/stops/stop__9640288/?'
'l=masstransit&ll=37.505338%2C55.800160&tab=overview&z=211', 'l=masstransit&ll=37.505338%2C55.800160&tab=overview&z=211',
message='Остановка Улица Алабяна' message='Остановка Улица Алабяна',
) )
return SendMessage(query.message.chat.id, text, reply_markup=get_keyboard()) return SendMessage(query.message.chat.id, text, reply_markup=get_keyboard())
@ -73,8 +81,13 @@ async def morning_bus_mailing(chat_ids: list[int]) -> None:
driver=driver, driver=driver,
url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/' url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/'
'?l=masstransit&ll=37.527754%2C55.823507&tab=overview&z=21', '?l=masstransit&ll=37.527754%2C55.823507&tab=overview&z=21',
message='Остановка Б. Академическая ул, д. 15' message='Остановка Б. Академическая ул, д. 15',
) )
await asyncio.gather( 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
]
) )

View File

@ -2,6 +2,9 @@ import sys
from loguru import logger from loguru import logger
logger.remove() logger.remove()
logger.add(sink=sys.stdout, colorize=True, level='DEBUG', logger.add(
format="<cyan>{time:DD.MM.YYYY HH:mm:ss}</cyan> | <level>{level}</level> | " sink=sys.stdout,
"<magenta>{message}</magenta>") colorize=True,
level='DEBUG',
format="<cyan>{time:DD.MM.YYYY HH:mm:ss}</cyan> | <level>{level}</level> | <magenta>{message}</magenta>",
)

View File

@ -15,8 +15,10 @@ from settings import BASE_DIR, GECKO_DRIVER_VERSION
def download_gecko_driver(): def download_gecko_driver():
gecko_driver = f'https://github.com/mozilla/geckodriver/releases/download/v{GECKO_DRIVER_VERSION}/' \ gecko_driver = (
f'https://github.com/mozilla/geckodriver/releases/download/v{GECKO_DRIVER_VERSION}/'
f'geckodriver-v{GECKO_DRIVER_VERSION}-linux64.tar.gz' f'geckodriver-v{GECKO_DRIVER_VERSION}-linux64.tar.gz'
)
if not Path(f'{BASE_DIR}/geckodriver').exists(): if not Path(f'{BASE_DIR}/geckodriver').exists():
logger.info(f'Downloading gecodriver v {GECKO_DRIVER_VERSION}...') 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: def parse_site(driver: WebDriver, url: str, message: str) -> str:
driver.get(url) driver.get(url)
time.sleep(4) 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, bus_t19 = None, None
bus_300_arrival, bus_t19_arrival = None, None bus_300_arrival, bus_t19_arrival = None, None
for element in elements: for element in elements:
try: try:
bus_300 = element.find_element(by='css selector', value='[aria-label="300"]') bus_300 = element.find_element(
bus_300_arrival = element.find_element(by='class name', value='masstransit-prognoses-view__title-text') by='css selector', value='[aria-label="300"]'
)
bus_300_arrival = element.find_element(
by='class name', value='masstransit-prognoses-view__title-text'
)
except NoSuchElementException: except NoSuchElementException:
pass pass
try: try:
bus_t19 = element.find_element(by='css selector', value='[aria-label="т19"]') bus_t19 = element.find_element(
bus_t19_arrival = element.find_element(by='class name', value='masstransit-prognoses-view__title-text') by='css selector', value='[aria-label="т19"]'
)
bus_t19_arrival = element.find_element(
by='class name', value='masstransit-prognoses-view__title-text'
)
except NoSuchElementException: except NoSuchElementException:
pass pass
answer = f'{message}\n\n' answer = f'{message}\n\n'

View File

@ -4,11 +4,14 @@ cron_jobs = [
{'trigger': 'cron', 'day_of_week': 'mon-fri', 'hour': 8, 'minute': 59, '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': 4, 'second': 0},
{'trigger': 'cron', 'day_of_week': 'mon-fri', 'hour': 9, 'minute': 9, 'second': 0}, {'trigger': 'cron', 'day_of_week': 'mon-fri', 'hour': 9, 'minute': 9, 'second': 0},
] ]
user_chat_ids = {'chat_ids': [417070387, # me user_chat_ids = {
'chat_ids': [
417070387, # me
431571617, # Lenok 431571617, # Lenok
]} ]
}
def asyncio_schedule() -> None: def asyncio_schedule() -> None:

View File

@ -1,3 +0,0 @@
from pathlib import Path
print(Path(__file__).parent.parent)