From 93616af565303c8d8452977e7bc3925072f10338 Mon Sep 17 00:00:00 2001 From: lesion Date: Mon, 1 May 2023 21:20:32 +0200 Subject: [PATCH] reload plugin when its settings change, fix #262 --- gancio_plugins/gancio-plugin-telegram-bridge | 2 +- server/api/controller/settings.js | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gancio_plugins/gancio-plugin-telegram-bridge b/gancio_plugins/gancio-plugin-telegram-bridge index 12640461..c1237728 160000 --- a/gancio_plugins/gancio-plugin-telegram-bridge +++ b/gancio_plugins/gancio-plugin-telegram-bridge @@ -1 +1 @@ -Subproject commit 12640461481cc39cdee8efa05e7fd02a6a60e99c +Subproject commit c1237728ad0101cc9cab4de3417d323f56abff70 diff --git a/server/api/controller/settings.js b/server/api/controller/settings.js index 28358e59..67dea7d7 100644 --- a/server/api/controller/settings.js +++ b/server/api/controller/settings.js @@ -126,6 +126,19 @@ const settingsController = { async setRequest (req, res) { const { key, value, is_secret } = req.body const ret = await settingsController.set(key, value, is_secret) + + // reload plugin when its settings change + if (key.startsWith('plugin_')) { + const pluginName = key.slice(7) + try { + const pluginController = require('./plugins') + pluginController.unloadPlugin(pluginName) + pluginController.loadPlugin(pluginName) + } catch (e) { + log.error(e) + } + } + if (ret) { res.sendStatus(200) } else { res.sendStatus(400) } },