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) +    }) +} | 
