Add new attachment storage option: "original"
parent
ff89ab557c
commit
6d16daea0d
|
@ -26,8 +26,17 @@ function getErrorResult(msg = null) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Attempts to download and save the given attachement
|
||||
* @param {Object} attachment
|
||||
* An attachment storage option that simply forwards the original attachment URL
|
||||
* @param {Eris.Attachment} attachment
|
||||
* @returns {{url: string}}
|
||||
*/
|
||||
function passthroughOriginalAttachment(attachment) {
|
||||
return { url: attachment.url };
|
||||
}
|
||||
|
||||
/**
|
||||
* An attachment storage option that downloads each attachment and serves them from a local web server
|
||||
* @param {Eris.Attachment} attachment
|
||||
* @param {Number=0} tries
|
||||
* @returns {Promise<{ url: string }>}
|
||||
*/
|
||||
|
@ -54,7 +63,7 @@ async function saveLocalAttachment(attachment) {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param {Object} attachment
|
||||
* @param {Eris.Attachment} attachment
|
||||
* @param {Number} tries
|
||||
* @returns {Promise<{ path: string, cleanup: function }>}
|
||||
*/
|
||||
|
@ -108,7 +117,9 @@ function getLocalAttachmentUrl(attachmentId, desiredName = null) {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param {Object} attachment
|
||||
* An attachment storage option that downloads each attachment and re-posts them to a specified Discord channel.
|
||||
* The re-posted attachment is then linked in the actual thread.
|
||||
* @param {Eris.Attachment} attachment
|
||||
* @returns {Promise<{ url: string }>}
|
||||
*/
|
||||
async function saveDiscordAttachment(attachment) {
|
||||
|
@ -153,8 +164,8 @@ async function createDiscordAttachmentMessage(channel, file, tries = 0) {
|
|||
|
||||
/**
|
||||
* Turns the given attachment into a file object that can be sent forward as a new attachment
|
||||
* @param {Object} attachment
|
||||
* @returns {Promise<{file, name: string}>}
|
||||
* @param {Eris.Attachment} attachment
|
||||
* @returns {Promise<Eris.MessageFile>}
|
||||
*/
|
||||
async function attachmentToDiscordFileObject(attachment) {
|
||||
const downloadResult = await downloadAttachment(attachment);
|
||||
|
@ -165,7 +176,7 @@ async function attachmentToDiscordFileObject(attachment) {
|
|||
|
||||
/**
|
||||
* Saves the given attachment based on the configured storage system
|
||||
* @param {Object} attachment
|
||||
* @param {Eris.Attachment} attachment
|
||||
* @returns {Promise<{ url: string }>}
|
||||
*/
|
||||
function saveAttachment(attachment) {
|
||||
|
@ -190,8 +201,9 @@ function addStorageType(name, handler) {
|
|||
attachmentStorageTypes[name] = handler;
|
||||
}
|
||||
|
||||
attachmentStorageTypes.local = saveLocalAttachment;
|
||||
attachmentStorageTypes.discord = saveDiscordAttachment;
|
||||
addStorageType("original", passthroughOriginalAttachment);
|
||||
addStorageType("local", saveLocalAttachment);
|
||||
addStorageType("discord", saveDiscordAttachment);
|
||||
|
||||
module.exports = {
|
||||
getLocalAttachmentPath,
|
||||
|
|
|
@ -206,7 +206,7 @@
|
|||
|
||||
"attachmentStorage": {
|
||||
"type": "string",
|
||||
"default": "local"
|
||||
"default": "original"
|
||||
},
|
||||
"attachmentStorageChannelId": {
|
||||
"type": "string"
|
||||
|
|
Loading…
Reference in New Issue