mirror of
https://github.com/Balshgit/mosgortrans.git
synced 2025-09-11 13:00:40 +03:00
add busses list
This commit is contained in:
parent
207aa1ec54
commit
8280e02aed
@ -50,6 +50,10 @@ class TransportBot:
|
|||||||
driver=driver,
|
driver=driver,
|
||||||
url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/?ll=37.527924%2C55.823470&tab=overview&z=21',
|
url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/?ll=37.527924%2C55.823470&tab=overview&z=21',
|
||||||
message='Остановка Б. Академическая ул, д. 15',
|
message='Остановка Б. Академическая ул, д. 15',
|
||||||
|
buses=[
|
||||||
|
'300',
|
||||||
|
'т19',
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
return await TransportBot.bot.send_message(
|
return await TransportBot.bot.send_message(
|
||||||
@ -66,6 +70,10 @@ class TransportBot:
|
|||||||
driver=driver,
|
driver=driver,
|
||||||
url='https://yandex.ru/maps/213/moscow/stops/stop__9640288/?ll=37.505402%2C55.800214&tab=overview&z=21',
|
url='https://yandex.ru/maps/213/moscow/stops/stop__9640288/?ll=37.505402%2C55.800214&tab=overview&z=21',
|
||||||
message='Остановка Улица Алабяна',
|
message='Остановка Улица Алабяна',
|
||||||
|
buses=[
|
||||||
|
'300',
|
||||||
|
'т19',
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
return await TransportBot.bot.send_message(
|
return await TransportBot.bot.send_message(
|
||||||
@ -91,6 +99,10 @@ class TransportBot:
|
|||||||
driver=driver,
|
driver=driver,
|
||||||
url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/?ll=37.527924%2C55.823470&tab=overview&z=21',
|
url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/?ll=37.527924%2C55.823470&tab=overview&z=21',
|
||||||
message='Остановка Б. Академическая ул, д. 15',
|
message='Остановка Б. Академическая ул, д. 15',
|
||||||
|
buses=[
|
||||||
|
'300',
|
||||||
|
'т19',
|
||||||
|
],
|
||||||
)
|
)
|
||||||
await asyncio.gather(
|
await asyncio.gather(
|
||||||
*[
|
*[
|
||||||
|
@ -57,7 +57,11 @@ class WebParser:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def parse_yandex_maps(
|
def parse_yandex_maps(
|
||||||
url: str, message: str, driver: RemoteWebDriver | None = None
|
*,
|
||||||
|
url: str,
|
||||||
|
message: str,
|
||||||
|
buses: list[str],
|
||||||
|
driver: RemoteWebDriver | None = None,
|
||||||
) -> str:
|
) -> str:
|
||||||
if not driver:
|
if not driver:
|
||||||
logger.error('Driver is not configured')
|
logger.error('Driver is not configured')
|
||||||
@ -81,26 +85,22 @@ class WebParser:
|
|||||||
by='class name',
|
by='class name',
|
||||||
value='masstransit-prognoses-view__title-text',
|
value='masstransit-prognoses-view__title-text',
|
||||||
)
|
)
|
||||||
match bus.text:
|
bus_arrival[bus.text] = (
|
||||||
case "300":
|
bus_arrival_time.text if bus_arrival_time else None
|
||||||
bus_arrival["Автобус 300"] = (
|
)
|
||||||
bus_arrival_time.text if bus_arrival_time else None
|
|
||||||
)
|
|
||||||
case "т19":
|
|
||||||
bus_arrival["Автобус Т19"] = (
|
|
||||||
bus_arrival_time.text if bus_arrival_time else None
|
|
||||||
)
|
|
||||||
except NoSuchElementException:
|
except NoSuchElementException:
|
||||||
pass
|
pass
|
||||||
except StaleElementReferenceException:
|
except StaleElementReferenceException:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if not any(bus_arrival.values()):
|
if not any([bus_arrival.get(bus_name) for bus_name in buses]):
|
||||||
return 'Автобусов 300 или Т19 не найдено. \n\nСмотри на карте :)'
|
return f'Автобусов {", ".join(buses)} не найдено. \n\nСмотри на карте :)'
|
||||||
|
|
||||||
answer = f'{message}\n\n'
|
answer = f'{message}\n\n'
|
||||||
for bus_name, arrival_time in bus_arrival.items():
|
for bus_name in buses:
|
||||||
answer += f'{bus_name} - {arrival_time}\n'
|
arrival_time = bus_arrival.get(bus_name)
|
||||||
|
if arrival_time:
|
||||||
|
answer += f'Автобус {bus_name} - {arrival_time}\n'
|
||||||
return answer
|
return answer
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -69,5 +69,9 @@ async def test_selenoid_parse_yandex() -> None:
|
|||||||
driver=driver,
|
driver=driver,
|
||||||
url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/?ll=37.527924%2C55.823470&tab=overview&z=21',
|
url='https://yandex.ru/maps/213/moscow/stops/stop__9640740/?ll=37.527924%2C55.823470&tab=overview&z=21',
|
||||||
message='Остановка Б. Академическая ул, д. 15',
|
message='Остановка Б. Академическая ул, д. 15',
|
||||||
|
buses=[
|
||||||
|
'300',
|
||||||
|
'т19',
|
||||||
|
],
|
||||||
)
|
)
|
||||||
assert len(text) > 0
|
assert len(text) > 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user