From 9fa6ca160a9dda057c3980c6ee19f0ee426fd0a0 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 17 Jul 2019 15:46:51 +0200 Subject: Some plugins fixes and doc enhancements --- server/initializers/constants.ts | 2 +- server/lib/plugins/plugin-manager.ts | 12 +++++++----- server/models/server/plugin.ts | 9 +++++++++ 3 files changed, 17 insertions(+), 6 deletions(-) (limited to 'server') diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 93ccb7da8..1111fd97f 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -19,7 +19,7 @@ const LAST_MIGRATION_VERSION = 400 // --------------------------------------------------------------------------- const API_VERSION = 'v1' -const PEERTUBE_VERSION = process.env.npm_package_version || 'unknown' +const PEERTUBE_VERSION = require(join(root(), 'package.json')).version const PAGINATION = { COUNT: { diff --git a/server/lib/plugins/plugin-manager.ts b/server/lib/plugins/plugin-manager.ts index 9e4ec5adf..570b56193 100644 --- a/server/lib/plugins/plugin-manager.ts +++ b/server/lib/plugins/plugin-manager.ts @@ -104,10 +104,12 @@ export class PluginManager { for (const hook of this.hooks[hookName]) { try { + const p = hook.handler(param) + if (wait) { - result = await hook.handler(param) - } else { - result = hook.handler() + result = await p + } else if (p.catch) { + p.catch(err => logger.warn('Hook %s of plugin %s thrown an error.', hookName, hook.pluginName, { err })) } } catch (err) { logger.error('Cannot run hook %s of plugin %s.', hookName, hook.pluginName, { err }) @@ -329,7 +331,7 @@ export class PluginManager { registerSetting, settingsManager, storageManager - }) + }).catch(err => logger.error('Cannot register plugin %s.', npmName, { err })) logger.info('Add plugin %s CSS to global file.', npmName) @@ -365,7 +367,7 @@ export class PluginManager { private async regeneratePluginGlobalCSS () { await this.resetCSSGlobalFile() - for (const key of Object.keys(this.registeredPlugins)) { + for (const key of Object.keys(this.getRegisteredPlugins())) { const plugin = this.registeredPlugins[key] await this.addCSSToGlobalFile(plugin.path, plugin.css) diff --git a/server/models/server/plugin.ts b/server/models/server/plugin.ts index 50963ba57..f39b97ef0 100644 --- a/server/models/server/plugin.ts +++ b/server/models/server/plugin.ts @@ -156,6 +156,15 @@ export class PluginModel extends Model { return PluginModel.findOne(query) .then((c: any) => { if (!c) return undefined + const value = c.value + + if (typeof value === 'string' && value.startsWith('{')) { + try { + return JSON.parse(value) + } catch { + return value + } + } return c.value }) -- cgit v1.2.3