Merge pull request #1136 from Dylanderv/feature/lutim

Add support for file hosting with lutim
This commit is contained in:
Max Wu 2019-08-01 00:37:25 +08:00 committed by GitHub
commit e2b9ea8f15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 38 additions and 3 deletions

View File

@ -60,8 +60,11 @@ module.exports = {
responseMaxLag: 70, responseMaxLag: 70,
// document // document
documentMaxLength: 100000, 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', imageUploadType: 'filesystem',
lutim: {
url: 'https://framapic.org/'
},
imgur: { imgur: {
clientID: undefined clientID: undefined
}, },

View File

@ -164,8 +164,8 @@ if (config.sessionSecret === 'secret') {
} }
// Validate upload upload providers // Validate upload upload providers
if (['filesystem', 's3', 'minio', 'imgur', 'azure'].indexOf(config.imageUploadType) === -1) { if (['filesystem', 's3', 'minio', 'imgur', 'azure', 'lutim'].indexOf(config.imageUploadType) === -1) {
logger.error('"imageuploadtype" is not correctly set. Please use "filesystem", "s3", "minio", "azure" or "imgur". Defaulting to "filesystem"') logger.error('"imageuploadtype" is not correctly set. Please use "filesystem", "s3", "minio", "azure", "lutim" or "imgur". Defaulting to "filesystem"')
config.imageUploadType = 'filesystem' config.imageUploadType = 'filesystem'
} }

View File

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

View File

@ -79,6 +79,7 @@
"keymaster": "~1.6.2", "keymaster": "~1.6.2",
"list.js": "~1.5.0", "list.js": "~1.5.0",
"lodash": "~4.17.11", "lodash": "~4.17.11",
"lutim": "~1.0.2",
"markdown-it": "~8.2.2", "markdown-it": "~8.2.2",
"markdown-it-abbr": "~1.0.4", "markdown-it-abbr": "~1.0.4",
"markdown-it-container": "~2.0.0", "markdown-it-container": "~2.0.0",