diff options
author | Dylan Dervaux | 2019-02-01 12:33:27 +0100 |
---|---|---|
committer | Sheogorath | 2019-04-10 01:37:12 +0200 |
commit | 208070d2e776c437154e6ead552364b3956adf1c (patch) | |
tree | 4e24aed2c2be442ede4bf3cbe9e8dc0e6be178df /lib | |
parent | 36c083277e6c74bb6eac495971522e6932cfc207 (diff) |
Add lutim support
Signed-off-by: Dylan Dervaux <dylanderv05@gmail.com>
Diffstat (limited to '')
-rw-r--r-- | lib/config/default.js | 5 | ||||
-rw-r--r-- | lib/config/environment.js | 3 | ||||
-rw-r--r-- | lib/config/index.js | 4 | ||||
-rw-r--r-- | lib/web/imageRouter/lutim.js | 31 |
4 files changed, 40 insertions, 3 deletions
diff --git a/lib/config/default.js b/lib/config/default.js index 98ccee91..c87beda3 100644 --- a/lib/config/default.js +++ b/lib/config/default.js @@ -58,8 +58,11 @@ module.exports = { heartbeatTimeout: 10000, // document documentMaxLength: 100000, - // image upload setting, available options are imgur/s3/filesystem/azure + // image upload setting, available options are imgur/s3/filesystem/azure/lutim imageUploadType: 'filesystem', + lutim: { + url: 'https://framapic.org/' + }, imgur: { clientID: undefined }, diff --git a/lib/config/environment.js b/lib/config/environment.js index 882df140..508c1ba6 100644 --- a/lib/config/environment.js +++ b/lib/config/environment.js @@ -49,6 +49,9 @@ module.exports = { secure: toBooleanConfig(process.env.CMD_MINIO_SECURE), port: toIntegerConfig(process.env.CMD_MINIO_PORT) }, + lutim: { + url: process.env.CMD_LUTIM_URL + }, s3bucket: process.env.CMD_S3_BUCKET, azure: { connectionString: process.env.CMD_AZURE_CONNECTION_STRING, diff --git a/lib/config/index.js b/lib/config/index.js index 4c28196e..e102dce9 100644 --- a/lib/config/index.js +++ b/lib/config/index.js @@ -164,8 +164,8 @@ if (config.sessionSecret === 'secret') { } // Validate upload upload providers -if (['filesystem', 's3', 'minio', 'imgur', 'azure'].indexOf(config.imageUploadType) === -1) { - logger.error('"imageuploadtype" is not correctly set. Please use "filesystem", "s3", "minio", "azure" or "imgur". Defaulting to "filesystem"') +if (['filesystem', 's3', 'minio', 'imgur', 'azure', 'lutim'].indexOf(config.imageUploadType) === -1) { + logger.error('"imageuploadtype" is not correctly set. Please use "filesystem", "s3", "minio", "azure", "lutim" or "imgur". Defaulting to "filesystem"') config.imageUploadType = 'filesystem' } diff --git a/lib/web/imageRouter/lutim.js b/lib/web/imageRouter/lutim.js new file mode 100644 index 00000000..78b856c9 --- /dev/null +++ b/lib/web/imageRouter/lutim.js @@ -0,0 +1,31 @@ +'use strict' +const config = require('../../config') +const logger = require('../../logger') + +const lutim = require('lutim') + +exports.uploadImage = function (imagePath, callback) { + if (!imagePath || typeof imagePath !== 'string') { + callback(new Error('Image path is missing or wrong'), null) + return + } + + if (!callback || typeof callback !== 'function') { + logger.error('Callback has to be a function') + return + } + + if (config.lutim && config.lutim.url) { + lutim.setAPIUrl(config.lutim.url) + } + + lutim.uploadImage(imagePath) + .then(function (json) { + if (config.debug) { + logger.info('SERVER uploadimage success: ' + JSON.stringify(json)) + } + callback(null, lutim.getAPIUrl() + json.msg.short) + }).catch(function (err) { + callback(new Error(err), null) + }) +} |