diff --git a/app/plugins/bestfilmversion/__init__.py b/app/plugins/bestfilmversion/__init__.py index 96b2ba6c..6a328514 100644 --- a/app/plugins/bestfilmversion/__init__.py +++ b/app/plugins/bestfilmversion/__init__.py @@ -1,9 +1,10 @@ -import datetime +from datetime import datetime, timedelta from functools import reduce from pathlib import Path from typing import Optional, Any, List, Dict, Tuple from xml.dom.minidom import parseString +import pytz from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.triggers.cron import CronTrigger from requests import Response @@ -71,37 +72,38 @@ class BestFilmVersion(_PluginBase): self._webhook_enabled = config.get("webhook_enabled") self._only_once = config.get("only_once") - if self._enabled and not self._webhook_enabled: - + if self._enabled: self._scheduler = BackgroundScheduler(timezone=settings.TZ) - if self._cron: - try: - self._scheduler.add_job(func=self.sync, - trigger=CronTrigger.from_crontab(self._cron), - name="收藏洗版") - except Exception as err: - logger.error(f"定时任务配置错误:{err}") - # 推送实时消息 - self.systemmessage.put(f"执行周期配置错误:{err}") - else: - self._scheduler.add_job(self.sync, "interval", minutes=30, name="收藏洗版") + if not self._webhook_enabled: + if self._cron: + try: + self._scheduler.add_job(func=self.sync, + trigger=CronTrigger.from_crontab(self._cron), + name="收藏洗版") + except Exception as err: + logger.error(f"定时任务配置错误:{err}") + # 推送实时消息 + self.systemmessage.put(f"执行周期配置错误:{err}") + else: + self._scheduler.add_job(self.sync, "interval", minutes=30, name="收藏洗版") + if self._only_once: + self._only_once = False + self.update_config({ + "enabled": self._enabled, + "cron": self._cron, + "notify": self._notify, + "webhook_enabled": self._webhook_enabled, + "only_once": self._only_once + }) + self._scheduler.add_job(self.sync, 'date', + run_date=datetime.now(tz=pytz.timezone(settings.TZ)) + timedelta(seconds=3), + name="立即运行收藏洗版") # 启动任务 if self._scheduler.get_jobs(): self._scheduler.print_jobs() self._scheduler.start() - if self._enabled and self._only_once: - self._only_once = False - self.update_config({ - "enabled": self._enabled, - "cron": self._cron, - "notify": self._notify, - "webhook_enabled": self._webhook_enabled, - "only_once": self._only_once - }) - self.sync() - def get_state(self) -> bool: return self._enabled