mirror of
https://github.com/Balshgit/mosgortrans.git
synced 2025-09-11 13:00:40 +03:00
reworked to poetry run
This commit is contained in:
parent
43c2144a84
commit
e8a01d1507
@ -5,9 +5,8 @@ from aiogram.contrib.middlewares.logging import LoggingMiddleware
|
|||||||
from aiogram.dispatcher import Dispatcher
|
from aiogram.dispatcher import Dispatcher
|
||||||
from aiogram.dispatcher.webhook import SendMessage
|
from aiogram.dispatcher.webhook import SendMessage
|
||||||
from aiogram.utils.callback_data import CallbackData
|
from aiogram.utils.callback_data import CallbackData
|
||||||
|
from app.core.parse_web import configure_firefox_driver, download_gecko_driver, parse_site
|
||||||
from core.parse_web import parse_site, configure_firefox_driver, download_gecko_driver
|
from app.settings import API_TOKEN
|
||||||
from settings import API_TOKEN
|
|
||||||
|
|
||||||
bot = Bot(token=API_TOKEN)
|
bot = Bot(token=API_TOKEN)
|
||||||
dispatcher = Dispatcher(bot)
|
dispatcher = Dispatcher(bot)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
||||||
logger.remove()
|
logger.remove()
|
||||||
|
@ -4,14 +4,13 @@ import time
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import wget
|
import wget
|
||||||
|
from app.core.logger import logger
|
||||||
from selenium import webdriver
|
from selenium import webdriver
|
||||||
from selenium.common.exceptions import NoSuchElementException
|
from selenium.common.exceptions import NoSuchElementException
|
||||||
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
|
||||||
|
from app.settings import BASE_DIR, GECKO_DRIVER_VERSION
|
||||||
from core.logger import logger
|
|
||||||
from settings import BASE_DIR, GECKO_DRIVER_VERSION
|
|
||||||
|
|
||||||
|
|
||||||
def download_gecko_driver():
|
def download_gecko_driver():
|
||||||
@ -20,13 +19,13 @@ def download_gecko_driver():
|
|||||||
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(BASE_DIR / 'geckodriver').exists():
|
||||||
logger.info(f'Downloading gecodriver v {GECKO_DRIVER_VERSION}...')
|
logger.info(f'Downloading gecodriver v {GECKO_DRIVER_VERSION}...')
|
||||||
geckodriver_file = wget.download(url=gecko_driver, out=BASE_DIR)
|
geckodriver_file = wget.download(url=gecko_driver, out=BASE_DIR.resolve().as_posix())
|
||||||
|
|
||||||
with tarfile.open(geckodriver_file) as tar:
|
with tarfile.open(geckodriver_file) as tar:
|
||||||
tar.extractall(BASE_DIR)
|
tar.extractall(BASE_DIR)
|
||||||
os.remove(f'{BASE_DIR}/geckodriver-v{GECKO_DRIVER_VERSION}-linux64.tar.gz')
|
os.remove(f'{BASE_DIR / "geckodriver"}-v{GECKO_DRIVER_VERSION}-linux64.tar.gz')
|
||||||
logger.info(f'\ngeckodriver has been downloaded to folder {BASE_DIR}')
|
logger.info(f'\ngeckodriver has been downloaded to folder {BASE_DIR}')
|
||||||
|
|
||||||
|
|
||||||
@ -37,7 +36,7 @@ def configure_firefox_driver(private_window: bool = False) -> WebDriver:
|
|||||||
opt.add_argument(f'{Path.home()}/snap/firefox/common/.mozilla/firefox')
|
opt.add_argument(f'{Path.home()}/snap/firefox/common/.mozilla/firefox')
|
||||||
if private_window:
|
if private_window:
|
||||||
opt.set_preference("browser.privatebrowsing.autostart", True)
|
opt.set_preference("browser.privatebrowsing.autostart", True)
|
||||||
service = Service(executable_path=f'{BASE_DIR}/geckodriver')
|
service = Service(executable_path=BASE_DIR / 'geckodriver')
|
||||||
firefox_driver = webdriver.Firefox(service=service, options=opt)
|
firefox_driver = webdriver.Firefox(service=service, options=opt)
|
||||||
|
|
||||||
return firefox_driver
|
return firefox_driver
|
||||||
@ -80,3 +79,5 @@ def parse_site(driver: WebDriver, url: str, message: str) -> str:
|
|||||||
if bus_t19:
|
if bus_t19:
|
||||||
answer += f'Автобус {bus_t19.text} - {bus_t19_arrival.text}'
|
answer += f'Автобус {bus_t19.text} - {bus_t19_arrival.text}'
|
||||||
return answer
|
return answer
|
||||||
|
|
||||||
|
download_gecko_driver()
|
@ -1,4 +1,4 @@
|
|||||||
from core.bot import morning_bus_mailing
|
from app.core.bot import morning_bus_mailing
|
||||||
|
|
||||||
cron_jobs = [
|
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},
|
||||||
|
@ -1,17 +1,16 @@
|
|||||||
from aiogram.utils.executor import start_webhook
|
from aiogram.utils.executor import start_webhook
|
||||||
|
|
||||||
from core.bot import bot, dispatcher
|
from core.bot import bot, dispatcher
|
||||||
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 WEBHOOK_URL, WEBHOOK_PATH, WEBAPP_HOST, WEBAPP_PORT
|
from settings import WEBAPP_HOST, WEBAPP_PORT, WEBHOOK_PATH, WEBHOOK_URL
|
||||||
|
|
||||||
|
|
||||||
async def on_startup(dispatcher) -> None:
|
async def on_startup() -> None:
|
||||||
await bot.set_webhook(WEBHOOK_URL)
|
await bot.set_webhook(WEBHOOK_URL)
|
||||||
asyncio_schedule()
|
asyncio_schedule()
|
||||||
|
|
||||||
|
|
||||||
async def on_shutdown(dispatcher):
|
async def on_shutdown() -> None:
|
||||||
logger.warning('Shutting down..')
|
logger.warning('Shutting down..')
|
||||||
|
|
||||||
# Remove webhook (not acceptable in some cases)
|
# Remove webhook (not acceptable in some cases)
|
||||||
|
@ -14,7 +14,6 @@ config = AutoConfig(search_path=env_path)
|
|||||||
|
|
||||||
|
|
||||||
GECKO_DRIVER_VERSION = config('GECKO_DRIVER_VERSION')
|
GECKO_DRIVER_VERSION = config('GECKO_DRIVER_VERSION')
|
||||||
BASE_DIR = Path(__file__).parent.resolve().as_posix()
|
|
||||||
|
|
||||||
API_TOKEN = config('API_TOKEN')
|
API_TOKEN = config('API_TOKEN')
|
||||||
|
|
||||||
|
@ -2,6 +2,5 @@
|
|||||||
|
|
||||||
|
|
||||||
echo "starting the bot"
|
echo "starting the bot"
|
||||||
cd /opt/mosgortrans/app \
|
cd /opt/mosgortrans \
|
||||||
&& source /home/balsh/.cache/pypoetry/virtualenvs/mosgortrans-3eZxMcY3-py3.10/bin/activate \
|
&& poetry run python app/main.py
|
||||||
&& python main.py
|
|
Loading…
x
Reference in New Issue
Block a user