mirror of
https://github.com/d0zingcat/MoviePilot-Plugins.git
synced 2026-05-18 23:16:48 +00:00
feat(BrushFlow): support cron
This commit is contained in:
@@ -11,6 +11,7 @@ from urllib.parse import urlparse, parse_qs, unquote, parse_qsl, urlencode, urlu
|
||||
import pytz
|
||||
from app.helper.sites import SitesHelper
|
||||
from apscheduler.schedulers.background import BackgroundScheduler
|
||||
from apscheduler.triggers.cron import CronTrigger
|
||||
|
||||
from app import schemas
|
||||
from app.chain.torrents import TorrentsChain
|
||||
@@ -72,6 +73,7 @@ class BrushConfig:
|
||||
self.brush_sequential = config.get("brush_sequential", False)
|
||||
self.proxy_delete = config.get("proxy_delete", False)
|
||||
self.active_time_range = config.get("active_time_range")
|
||||
self.cron = config.get("cron")
|
||||
self.qb_category = config.get("qb_category")
|
||||
self.site_hr_active = config.get("site_hr_active", False)
|
||||
self.site_skip_tips = config.get("site_skip_tips", False)
|
||||
@@ -431,14 +433,27 @@ class BrushFlow(_PluginBase):
|
||||
return services
|
||||
|
||||
if self._task_brush_enable:
|
||||
logger.info(f"站点刷流定时服务启动,时间间隔 {self._brush_interval} 分钟")
|
||||
services.append({
|
||||
"id": "BrushFlow",
|
||||
"name": "站点刷流服务",
|
||||
"trigger": "interval",
|
||||
"func": self.brush,
|
||||
"kwargs": {"minutes": self._brush_interval}
|
||||
})
|
||||
if brush_config.cron:
|
||||
values = brush_config.cron.split()
|
||||
values[0] = f"{datetime.now().minute % 10}/5"
|
||||
cron = " ".join(values)
|
||||
logger.info(f"站点刷流定时服务启动,执行周期 {cron}")
|
||||
cron_trigger = CronTrigger.from_crontab(cron)
|
||||
services.append({
|
||||
"id": "BrushFlow",
|
||||
"name": "站点刷流服务",
|
||||
"trigger": cron_trigger,
|
||||
"func": self.brush
|
||||
})
|
||||
else:
|
||||
logger.info(f"站点刷流定时服务启动,时间间隔 {self._brush_interval} 分钟")
|
||||
services.append({
|
||||
"id": "BrushFlow",
|
||||
"name": "站点刷流服务",
|
||||
"trigger": "interval",
|
||||
"func": self.brush,
|
||||
"kwargs": {"minutes": self._brush_interval}
|
||||
})
|
||||
|
||||
if brush_config.enabled:
|
||||
logger.info(f"站点刷流检查定时服务启动,时间间隔 {self._check_interval} 分钟")
|
||||
@@ -888,7 +903,7 @@ class BrushFlow(_PluginBase):
|
||||
'component': 'VCol',
|
||||
'props': {
|
||||
"cols": 12,
|
||||
"md": 4
|
||||
"md": 3
|
||||
},
|
||||
'content': [
|
||||
{
|
||||
@@ -905,7 +920,24 @@ class BrushFlow(_PluginBase):
|
||||
'component': 'VCol',
|
||||
'props': {
|
||||
"cols": 12,
|
||||
"md": 4
|
||||
"md": 3
|
||||
},
|
||||
'content': [
|
||||
{
|
||||
'component': 'VTextField',
|
||||
'props': {
|
||||
'model': 'cron',
|
||||
'label': '执行周期',
|
||||
'placeholder': '如:0 0-1 * * FRI,SUN'
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'component': 'VCol',
|
||||
'props': {
|
||||
"cols": 12,
|
||||
"md": 3
|
||||
},
|
||||
'content': [
|
||||
{
|
||||
@@ -922,7 +954,7 @@ class BrushFlow(_PluginBase):
|
||||
'component': 'VCol',
|
||||
'props': {
|
||||
"cols": 12,
|
||||
"md": 4
|
||||
"md": 3
|
||||
},
|
||||
'content': [
|
||||
{
|
||||
@@ -2945,6 +2977,7 @@ class BrushFlow(_PluginBase):
|
||||
"brush_sequential": brush_config.brush_sequential,
|
||||
"proxy_delete": brush_config.proxy_delete,
|
||||
"active_time_range": brush_config.active_time_range,
|
||||
"cron": brush_config.cron,
|
||||
"qb_category": brush_config.qb_category,
|
||||
"enable_site_config": brush_config.enable_site_config,
|
||||
"site_config": brush_config.site_config,
|
||||
|
||||
Reference in New Issue
Block a user