mirror of
https://github.com/Balshgit/mosgortrans.git
synced 2025-09-11 13:00:40 +03:00
add some error catch
This commit is contained in:
parent
1991d0d640
commit
ba76108c28
1
.gitignore
vendored
1
.gitignore
vendored
@ -144,3 +144,4 @@ cython_debug/
|
||||
|
||||
# my staff
|
||||
delete/
|
||||
geckodriver
|
||||
|
@ -6,7 +6,7 @@ from pathlib import Path
|
||||
import wget
|
||||
from core.logger import logger
|
||||
from selenium import webdriver
|
||||
from selenium.common.exceptions import NoSuchElementException
|
||||
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
|
||||
@ -31,7 +31,7 @@ def download_gecko_driver() -> None:
|
||||
logger.info(f'\ngeckodriver has been downloaded to folder {BASE_DIR}')
|
||||
|
||||
|
||||
def configure_firefox_driver(private_window: bool = False) -> WebDriver:
|
||||
def configure_firefox_driver(private_window: bool = False) -> WebDriver | None:
|
||||
opt = options.Options()
|
||||
opt.headless = True
|
||||
opt.add_argument('-profile')
|
||||
@ -39,12 +39,18 @@ def configure_firefox_driver(private_window: bool = False) -> WebDriver:
|
||||
if private_window:
|
||||
opt.set_preference("browser.privatebrowsing.autostart", True)
|
||||
service = Service(executable_path=BASE_DIR / 'geckodriver')
|
||||
firefox_driver = webdriver.Firefox(service=service, options=opt)
|
||||
|
||||
return firefox_driver
|
||||
try:
|
||||
firefox_driver = webdriver.Firefox(service=service, options=opt)
|
||||
return firefox_driver
|
||||
except WebDriverException:
|
||||
logger.error('Error configuring webdriver. Possible it already configured')
|
||||
return None
|
||||
|
||||
|
||||
def parse_site(driver: WebDriver, url: str, message: str) -> str:
|
||||
def parse_site(url: str, message: str, driver: WebDriver | None = None) -> str:
|
||||
if not driver:
|
||||
logger.error('Driver is not configured')
|
||||
return 'Что-то пошло не так. :( Драйвер Firefox не сконфигурирован.'
|
||||
driver.get(url)
|
||||
time.sleep(4)
|
||||
elements = driver.find_elements(
|
||||
|
@ -1,6 +1,6 @@
|
||||
from aiogram import Dispatcher
|
||||
from aiogram.utils.executor import start_polling, start_webhook
|
||||
from core.bot import bot, dispatcher
|
||||
from core.bot import bot, dispatcher, driver
|
||||
from core.logger import logger
|
||||
from core.scheduler import asyncio_schedule
|
||||
from settings import (
|
||||
@ -24,6 +24,8 @@ async def on_shutdown(dp: Dispatcher) -> None:
|
||||
await bot.delete_webhook()
|
||||
|
||||
# Close DB connection (if used)
|
||||
if driver:
|
||||
driver.close()
|
||||
await dispatcher.storage.close()
|
||||
await dispatcher.storage.wait_closed()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user