Добавление прокси + пересмена интерфейса
This commit is contained in:
@@ -4,8 +4,8 @@ from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||
from apscheduler.triggers.cron import CronTrigger
|
||||
from apscheduler.triggers.interval import IntervalTrigger
|
||||
|
||||
from glitchup_bot.config import settings
|
||||
from glitchup_bot.services.digest_builder import build_digest
|
||||
from glitchup_bot.services.runtime_settings import get_runtime_settings
|
||||
from glitchup_bot.services.sync_service import sync_issues
|
||||
from glitchup_bot.services.telegram_sender import send_digest_message
|
||||
|
||||
@@ -17,7 +17,7 @@ scheduler: AsyncIOScheduler | None = None
|
||||
async def weekly_digest_job() -> None:
|
||||
logger.info("Running weekly digest job")
|
||||
try:
|
||||
await send_digest_message(await build_digest(refresh=True))
|
||||
await send_digest_message(await build_digest(refresh=False))
|
||||
logger.info("Weekly digest sent successfully")
|
||||
except Exception:
|
||||
logger.exception("Failed to send weekly digest")
|
||||
@@ -37,42 +37,53 @@ async def sync_job() -> None:
|
||||
logger.exception("Scheduled issue sync failed")
|
||||
|
||||
|
||||
def setup_scheduler() -> AsyncIOScheduler:
|
||||
async def setup_scheduler() -> AsyncIOScheduler:
|
||||
global scheduler
|
||||
|
||||
if scheduler is not None and scheduler.running:
|
||||
return scheduler
|
||||
|
||||
runtime = await get_runtime_settings()
|
||||
scheduler = AsyncIOScheduler()
|
||||
scheduler.add_job(
|
||||
sync_job,
|
||||
IntervalTrigger(minutes=settings.sync_interval_minutes),
|
||||
id="issue_sync",
|
||||
replace_existing=True,
|
||||
)
|
||||
if runtime.sync_enabled:
|
||||
scheduler.add_job(
|
||||
sync_job,
|
||||
IntervalTrigger(minutes=runtime.sync_interval_minutes),
|
||||
id="issue_sync",
|
||||
replace_existing=True,
|
||||
)
|
||||
scheduler.add_job(
|
||||
weekly_digest_job,
|
||||
CronTrigger(
|
||||
day_of_week=settings.digest_cron_day,
|
||||
hour=settings.digest_cron_hour,
|
||||
minute=settings.digest_cron_minute,
|
||||
timezone=settings.digest_timezone,
|
||||
day_of_week=runtime.digest_cron_day,
|
||||
hour=runtime.digest_cron_hour,
|
||||
minute=runtime.digest_cron_minute,
|
||||
timezone=runtime.digest_timezone,
|
||||
),
|
||||
id="weekly_digest",
|
||||
replace_existing=True,
|
||||
)
|
||||
scheduler.start()
|
||||
logger.info(
|
||||
"Scheduler started: sync every %s min, digest at %s %02d:%02d %s",
|
||||
settings.sync_interval_minutes,
|
||||
settings.digest_cron_day,
|
||||
settings.digest_cron_hour,
|
||||
settings.digest_cron_minute,
|
||||
settings.digest_timezone,
|
||||
"Scheduler started: sync %s, digest at %s %02d:%02d %s",
|
||||
(
|
||||
f"every {runtime.sync_interval_minutes} min"
|
||||
if runtime.sync_enabled
|
||||
else "disabled"
|
||||
),
|
||||
runtime.digest_cron_day,
|
||||
runtime.digest_cron_hour,
|
||||
runtime.digest_cron_minute,
|
||||
runtime.digest_timezone,
|
||||
)
|
||||
return scheduler
|
||||
|
||||
|
||||
async def reload_scheduler() -> AsyncIOScheduler:
|
||||
await shutdown_scheduler()
|
||||
return await setup_scheduler()
|
||||
|
||||
|
||||
async def shutdown_scheduler() -> None:
|
||||
global scheduler
|
||||
|
||||
|
||||
Reference in New Issue
Block a user