UNPKG

twdl

Version:

Downloads image and video tweets from Twitter

125 lines 3.18 kB
import { DEFAULT_FORMAT } from './util.js'; export const CliOptions = { list: { alias: 'l', default: '', describe: 'Load tweets from a file', type: 'string' }, cookie: { alias: 'k', default: '', describe: 'Send cookie to Twitter', type: 'string' }, debug: { alias: 'g', default: false, describe: 'Enable verbose errors for debugging', type: 'boolean' }, ignoreErrors: { alias: 'i', default: false, describe: 'Ignore errors and continue downloading', type: 'boolean' }, }; export var ScraperType; (function (ScraperType) { ScraperType["Id"] = "id"; ScraperType["Nitter"] = "nitter"; ScraperType["Puppeteer"] = "puppeteer"; })(ScraperType || (ScraperType = {})); export const DownloadOptions = { format: { alias: 'f', default: DEFAULT_FORMAT, describe: 'Set filename format', type: 'string' }, embed: { alias: 'e', default: false, describe: 'Embed tweet metadata in Comment', type: 'boolean' }, data: { alias: 'd', default: '', describe: 'Embed additional data in Comment', type: 'string' }, text: { alias: 'x', default: false, describe: 'Write tweet metadata as text file', type: 'boolean' }, overwrite: { alias: 'o', default: false, describe: 'Overwrite already existing file', type: 'boolean' }, date: { alias: 't', default: false, describe: 'Replace file date with tweet date', type: 'boolean' }, redirect: { alias: 'r', default: true, describe: 'Follow redirects', type: 'boolean' }, cache: { alias: 'c', default: true, describe: 'Use local cache', type: 'boolean' }, scraper: { alias: 's', default: ScraperType.Puppeteer, describe: 'Use specific scrapers', type: 'string' }, }; export const DownloadInfoOptions = { avatar: { alias: 'a', default: false, describe: 'Include profile image', type: 'boolean' }, quote: { alias: 'u', default: false, describe: 'Include images of quoted tweet', type: 'boolean' }, }; export const InfoOptions = { media: { alias: 'm', default: false, describe: 'Show media URL(s) only', type: 'boolean' }, }; export function makeOptions(mergeOptions) { const defaultOptions = {}; function setDefaults(optionTypes) { for (const [key, value] of Object.entries(optionTypes)) { defaultOptions[key] = value.default; } } setDefaults(CliOptions); setDefaults(DownloadOptions); setDefaults(DownloadInfoOptions); setDefaults(InfoOptions); return Object.assign(defaultOptions, mergeOptions); } //# sourceMappingURL=options.js.map