Restart FreeGame scheduler after settings changes

This commit is contained in:
2026-05-28 16:52:09 +09:00
parent 7d73ecd2b2
commit a0204845c3
+16
View File
@@ -136,6 +136,11 @@ class Logic(PluginModuleBase):
try:
if sub == "setting_save":
ret, _ = ModelSetting.setting_save(req)
if F.scheduler.is_include(package_name):
self.scheduler_stop()
self.scheduler_start()
elif _truthy(ModelSetting.get("auto_start")):
self.scheduler_start()
ret["ret"] = "success"
return jsonify(ret)
if sub == "scheduler_toggle":
@@ -161,8 +166,11 @@ class Logic(PluginModuleBase):
def scheduler_start(self):
try:
interval = ModelSetting.get("auto_interval") or "0 */2 * * *"
if F.scheduler.is_include(package_name):
scheduler.remove_job(package_name)
job = Job(package_name, package_name, interval, self.scheduler_function, "FreeGame fetch", True)
scheduler.add_job_instance(job)
logger.info("FreeGame scheduler registered: %s", interval)
except Exception as e:
logger.error("Exception:%s", e)
logger.error(traceback.format_exc())
@@ -219,6 +227,14 @@ class Logic(PluginModuleBase):
telegram_bot_token = ModelSetting.get("notify_telegram_bot_token")
telegram_chat_id = ModelSetting.get("notify_telegram_chat_id")
if discord_webhook:
try:
_discord_send(discord_webhook, targets)
logger.info("FreeGame Discord notification sent: %d", min(len(targets), 10))
except Exception as e:
logger.error("FreeGame Discord notification failed: %s", e)
if telegram_bot_token and telegram_chat_id:
try:
_telegram_send(telegram_bot_token, telegram_chat_id, targets)
logger.info("FreeGame Telegram notification sent: %d", min(len(targets), 10))
except Exception as e:
logger.error("FreeGame Telegram notification failed: %s", e)