revert selenoid

This commit is contained in:
2022-08-23 00:58:22 +03:00
parent c01a163d1c
commit 25ab0b0c31
6 changed files with 147 additions and 10 deletions

View File

@@ -4,20 +4,16 @@ from aiogram import Bot, types
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiogram.dispatcher import Dispatcher
from aiogram.utils.callback_data import CallbackData
from app.core.logger import logger
from app.core.parse_web import (
configure_firefox_driver,
download_gecko_driver,
parse_site,
)
from app.core.parse_web import get_driver, get_driver_session, parse_site
from app.settings import API_TOKEN
bot = Bot(token=API_TOKEN)
dispatcher = Dispatcher(bot)
dispatcher.middleware.setup(LoggingMiddleware())
download_gecko_driver()
driver = configure_firefox_driver()
driver = get_driver()
session_id = get_driver_session(driver)
stations_cb = CallbackData('station', 'direction')
@@ -86,6 +82,7 @@ async def echo(message: types.Message) -> types.Message:
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/'

View File

@@ -10,7 +10,7 @@ from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException, WebDriverException
from selenium.webdriver.firefox import options
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.webdriver import WebDriver
from selenium.webdriver.firefox.webdriver import RemoteWebDriver, WebDriver
def download_gecko_driver() -> None:
@@ -47,7 +47,7 @@ def configure_firefox_driver(private_window: bool = False) -> WebDriver | None:
return None
def parse_site(url: str, message: str, driver: WebDriver | None = None) -> str:
def parse_site(url: str, message: str, driver: RemoteWebDriver | None = None) -> str:
if not driver:
logger.error('Driver is not configured')
return 'Что-то пошло не так. :( Драйвер Firefox не сконфигурирован.'
@@ -87,3 +87,16 @@ def parse_site(url: str, message: str, driver: WebDriver | None = None) -> str:
if bus_t19 and bus_t19_arrival:
answer += f'Автобус {bus_t19.text} - {bus_t19_arrival.text}'
return answer
def get_driver() -> RemoteWebDriver:
opt = options.Options()
opt.headless = True
driver = RemoteWebDriver(
command_executor='http://selenoid_host:4444/wd/hub', options=opt
)
return driver
def get_driver_session(driver: RemoteWebDriver) -> str:
return driver.session_id # type: ignore