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
|
# my staff
|
||||||
delete/
|
delete/
|
||||||
|
geckodriver
|
||||||
|
@ -6,7 +6,7 @@ from pathlib import Path
|
|||||||
import wget
|
import wget
|
||||||
from core.logger import logger
|
from core.logger import logger
|
||||||
from selenium import webdriver
|
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 import options
|
||||||
from selenium.webdriver.firefox.service import Service
|
from selenium.webdriver.firefox.service import Service
|
||||||
from selenium.webdriver.firefox.webdriver import WebDriver
|
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}')
|
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 = options.Options()
|
||||||
opt.headless = True
|
opt.headless = True
|
||||||
opt.add_argument('-profile')
|
opt.add_argument('-profile')
|
||||||
@ -39,12 +39,18 @@ def configure_firefox_driver(private_window: bool = False) -> WebDriver:
|
|||||||
if private_window:
|
if private_window:
|
||||||
opt.set_preference("browser.privatebrowsing.autostart", True)
|
opt.set_preference("browser.privatebrowsing.autostart", True)
|
||||||
service = Service(executable_path=BASE_DIR / 'geckodriver')
|
service = Service(executable_path=BASE_DIR / 'geckodriver')
|
||||||
|
try:
|
||||||
firefox_driver = webdriver.Firefox(service=service, options=opt)
|
firefox_driver = webdriver.Firefox(service=service, options=opt)
|
||||||
|
|
||||||
return firefox_driver
|
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)
|
driver.get(url)
|
||||||
time.sleep(4)
|
time.sleep(4)
|
||||||
elements = driver.find_elements(
|
elements = driver.find_elements(
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from aiogram import Dispatcher
|
from aiogram import Dispatcher
|
||||||
from aiogram.utils.executor import start_polling, start_webhook
|
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.logger import logger
|
||||||
from core.scheduler import asyncio_schedule
|
from core.scheduler import asyncio_schedule
|
||||||
from settings import (
|
from settings import (
|
||||||
@ -24,6 +24,8 @@ async def on_shutdown(dp: Dispatcher) -> None:
|
|||||||
await bot.delete_webhook()
|
await bot.delete_webhook()
|
||||||
|
|
||||||
# Close DB connection (if used)
|
# Close DB connection (if used)
|
||||||
|
if driver:
|
||||||
|
driver.close()
|
||||||
await dispatcher.storage.close()
|
await dispatcher.storage.close()
|
||||||
await dispatcher.storage.wait_closed()
|
await dispatcher.storage.wait_closed()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user