Added filepath component length limit with truncator. Fixed double extension dot when copying original extension. Moved API keys to local config.

This commit is contained in:
DebaucheryLibrarian 2024-09-11 05:16:55 +02:00
parent 80564cff19
commit be7bc1b10d
4 changed files with 20 additions and 11 deletions

View File

@ -26,8 +26,10 @@ module.exports = {
comment: '$itemDescription' comment: '$itemDescription'
}, },
dateFormat: 'YYYYMMDD', dateFormat: 'YYYYMMDD',
filenameLimit: 250, truncate: {
truncator: '...', limit: 250,
truncator: '...'
},
indexOffset: 1, indexOffset: 1,
slashSubstitute: '#', slashSubstitute: '#',
}, },
@ -45,18 +47,18 @@ module.exports = {
}, },
reddit: { reddit: {
api: { api: {
userAgent: 'wat', userAgent: 'reddit-post-dump',
clientId: 'VPquALMpTGl3ag', clientId: '1234567abcdefg',
access_token: 'xxxW9FDeaOIeHwsOvTkE4YLo_Fk', access_token: 'abcD123eFg45Hi6J7klmnop8qr9',
token_type: 'bearer', token_type: 'bearer',
expires_in: 3600, expires_in: 3600,
refresh_token: '8427871-D-Hb-m8WAazo2hBP-0iCPcUSPLM', refresh_token: '1234567-A-Bc-defg8912hij-klm345opqr',
scope: 'history identity mysubreddits read subscribe' scope: 'history identity mysubreddits read subscribe'
} }
}, },
methods: { methods: {
imgur: { imgur: {
clientId: '455ceaa737dbac0' clientId: '1234567abcdefgh'
} }
} }
}; };

View File

@ -46,8 +46,6 @@ module.exports = function(posts) {
const filepath = post.content.album ? interpolate(config.library.album[type], post.user, post, item) : interpolate(config.library[type], post.user, post, item); const filepath = post.content.album ? interpolate(config.library.album[type], post.user, post, item) : interpolate(config.library[type], post.user, post, item);
return Promise.resolve().then(() => { return Promise.resolve().then(() => {
return fs.ensureDir(path.dirname(filepath));
}).then(() => {
return save(filepath, item.streams || item.stream, item, post); return save(filepath, item.streams || item.stream, item, post);
}).then(sourcePaths => { }).then(sourcePaths => {
if(item.mux) { if(item.mux) {

View File

@ -64,7 +64,7 @@ function interpolate(pattern, user, post, item) {
$itemIndex: item.index + config.library.indexOffset, $itemIndex: item.index + config.library.indexOffset,
$extracted: item.extracted ? config.library.booleans.extracted : '', $extracted: item.extracted ? config.library.booleans.extracted : '',
$preview: item.preview ? config.library.booleans.preview : '', $preview: item.preview ? config.library.booleans.preview : '',
$ext: `.${mime.extension(item.type) || path.extname(url.parse(item.url).pathname)}` $ext: item.type ? `.${mime.extension(item.type)}` : path.extname(url.parse(item.url).pathname)
}); });
} }

View File

@ -1,10 +1,19 @@
'use strict'; 'use strict';
const config = require('config');
const fs = require('fs-extra'); const fs = require('fs-extra');
const path = require('path'); const path = require('path');
const ffmpeg = require('fluent-ffmpeg'); const ffmpeg = require('fluent-ffmpeg');
function save(filepath, streams, item, post) { function save(requestedFilepath, streams, item, post) {
const filepath = requestedFilepath.split('/').map(component => {
if(config.library.truncate && component.length > config.library.truncate.limit) {
return component.slice(0, config.library.truncate.limit - config.library.truncate.truncator.length) + config.library.truncate.truncator;
}
return component;
}).join(path.sep);
const pathComponents = path.parse(filepath); const pathComponents = path.parse(filepath);
// allow for single stream argument // allow for single stream argument