mirror of
https://github.com/p-stream/providers.git
synced 2026-04-20 04:42:06 +00:00
Move runScraper to use the options instead of providers itself
This commit is contained in:
parent
aa4b7cda9e
commit
edd08446cf
2 changed files with 19 additions and 13 deletions
|
|
@ -9,7 +9,7 @@ import { logDeepObject } from '@/dev-cli/logging';
|
|||
import { getMovieMediaDetails, getShowMediaDetails } from '@/dev-cli/tmdb';
|
||||
import { CommandLineArguments, processOptions } from '@/dev-cli/validate';
|
||||
|
||||
import { MetaOutput, ProviderControls, getBuiltinEmbeds, getBuiltinSources } from '..';
|
||||
import { MetaOutput, ProviderMakerOptions, getBuiltinEmbeds, getBuiltinSources, makeProviders } from '..';
|
||||
|
||||
dotenv.config();
|
||||
|
||||
|
|
@ -49,8 +49,9 @@ function joinMediaTypes(mediaTypes: string[] | undefined) {
|
|||
return ''; // * Embed sources pass through here too
|
||||
}
|
||||
|
||||
async function runScraper(providers: ProviderControls, source: MetaOutput, options: CommandLineArguments) {
|
||||
async function runScraper(providerOptions: ProviderMakerOptions, source: MetaOutput, options: CommandLineArguments) {
|
||||
const spinnies = new Spinnies();
|
||||
const providers = makeProviders(providerOptions);
|
||||
|
||||
if (source.type === 'embed') {
|
||||
spinnies.add('scrape', { text: `Running ${source.name} scraper on ${options.url}` });
|
||||
|
|
@ -200,8 +201,8 @@ async function runQuestions() {
|
|||
}
|
||||
}
|
||||
|
||||
const { providers, source: validatedSource, options: validatedOps } = await processOptions(sources, options);
|
||||
await runScraper(providers, validatedSource, validatedOps);
|
||||
const { providerOptions, source: validatedSource, options: validatedOps } = await processOptions(sources, options);
|
||||
await runScraper(providerOptions, validatedSource, validatedOps);
|
||||
}
|
||||
|
||||
async function runCommandLine() {
|
||||
|
|
@ -216,8 +217,12 @@ async function runCommandLine() {
|
|||
|
||||
program.parse();
|
||||
|
||||
const { providers, source: validatedSource, options: validatedOps } = await processOptions(sources, program.opts());
|
||||
await runScraper(providers, validatedSource, validatedOps);
|
||||
const {
|
||||
providerOptions,
|
||||
source: validatedSource,
|
||||
options: validatedOps,
|
||||
} = await processOptions(sources, program.opts());
|
||||
await runScraper(providerOptions, validatedSource, validatedOps);
|
||||
}
|
||||
|
||||
if (process.argv.length === 2) {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import nodeFetch from 'node-fetch';
|
|||
|
||||
import { Embed, Sourcerer } from '@/providers/base';
|
||||
|
||||
import { makeProviders, makeStandardFetcher, targets } from '..';
|
||||
import { ProviderMakerOptions, makeStandardFetcher, targets } from '..';
|
||||
|
||||
export type CommandLineArguments = {
|
||||
fetcher: string;
|
||||
|
|
@ -15,8 +15,9 @@ export type CommandLineArguments = {
|
|||
};
|
||||
|
||||
export async function processOptions(sources: Array<Embed | Sourcerer>, options: CommandLineArguments) {
|
||||
if (options.fetcher !== 'node-fetch' && options.fetcher !== 'native') {
|
||||
throw new Error("Fetcher must be either 'native' or 'node-fetch'");
|
||||
const fetcherOptions = ['node-fetch', 'native', 'browser'];
|
||||
if (!fetcherOptions.includes(options.fetcher)) {
|
||||
throw new Error(`Fetcher must be any of: ${fetcherOptions.join()}`);
|
||||
}
|
||||
|
||||
if (!options.sourceId.trim()) {
|
||||
|
|
@ -77,13 +78,13 @@ export async function processOptions(sources: Array<Embed | Sourcerer>, options:
|
|||
fetcher = makeStandardFetcher(nodeFetch);
|
||||
}
|
||||
|
||||
const providers = makeProviders({
|
||||
const providerOptions: ProviderMakerOptions = {
|
||||
fetcher,
|
||||
target: targets.NATIVE,
|
||||
});
|
||||
target: targets.ANY,
|
||||
};
|
||||
|
||||
return {
|
||||
providers,
|
||||
providerOptions,
|
||||
options,
|
||||
source,
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue