twdl
Version:
Downloads image and video tweets from Twitter
125 lines • 3.18 kB
JavaScript
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