'use strict'; module.exports = { library: { base: { posts: 'output/{user.name}/{label}/', direct: 'output/{host.name}/{label}/', }, posts: { image: '{base.posts}{post.date}{div}{tags.preview}{item.id}{div}{post.title}{ext}', video: '{base.posts}{post.date}{div}{tags.preview}{item.id}{div}{post.title}{ext}', text: '{base.posts}{post.date}{div}{tags.preview}{post.id}{div}{post.title}', album: { image: '{base.posts}{post.date}{div}{tags.preview}{album.id}{div}{post.title}/{item.index}{div}{item.id}{ext}', video: '{base.posts}{post.date}{div}{tags.preview}{album.id}{div}{post.title}/{item.index}{div}{item.id}{ext}', }, }, direct: { image: '{base.direct}{item.date}{div}{tags.preview}{item.id}{divs.item.title}{item.title}{ext}', video: '{base.direct}{item.date}{div}{tags.preview}{item.id}{divs.item.title}{item.title}{ext}', text: '{base.direct}{item.date}{div}{tags.preview}{item.id}{divs.item.title}{item.title}', album: { image: '{base.direct}{album.date}{div}{tags.preview}{album.id}{divs.album.title}{album.title}/{item.index}{div}{item.id}{ext}', video: '{base.direct}{album.date}{div}{tags.preview}{album.id}{divs.album.title}{album.title}/{item.index}{div}{item.id}{ext}', }, }, extractSingleAlbumItem: true, profile: { image: '{base.posts}{user.created}{div}profile{ext}', description: '{base.posts}{user.created}{div}profile ({tags.verified}{tags.verifiedEmail}{tags.gold}{tags.over18})', avoidAvatar: true, }, index: { file: '{base.posts}index', }, meta: { comment: '{item.description}', }, tags: { extracted: 'extracted-', preview: 'preview-', verified: '✔', verifiedEmail: '✉', gold: '★', over18: '♥', }, // date-fns v2+ token syntax (was 'YYYYMMDD' under date-fns v1) dateFormat: 'yyyyMMdd', truncate: { limit: 250, truncator: '...', }, indexOffset: 1, divider: ' - ', slashSubstitute: '#', }, fetch: { sort: 'new', limit: 1000, avoidDuplicates: true, retries: 3, concurrency: 10, watch: { schedule: '*/30 * * * *', }, archives: { search: false, preview: true, reddit: ['ip'], reupload: [], }, }, logger: { level: 'info', }, limiter: { concurrency: 10, interval: 100, }, reddit: { // Netscape/Mozilla cookie-jar dump (string) of a logged-in reddit session, used to // get past reddit's anonymous-traffic bot challenge on www.reddit.com. Needs periodic // refreshing - src/reddit/client.js logs a warning once the soonest-expiring cookie // in here is within 48h of expiring. cookies: null, // fallback/simpler alternative to `cookies` above: a single pre-built `name=value; ...` // Cookie header string. Only used if `cookies` is not set. cookie: null, userAgent: 'ripunzel', throttle: { // deliberately conservative - this is unauthenticated-looking public access, // not an approved API key, getting flagged as a bot defeats the point reservoir: 6, minTime: 1500, }, }, methods: { imgur: { clientId: null, }, }, };