refactor: extract Media Flow Proxy functions
This commit is contained in:
parent
64d1da9dc6
commit
b2eb16fc82
5 changed files with 21 additions and 19 deletions
|
|
@ -1,7 +1,7 @@
|
|||
import bytes from 'bytes';
|
||||
import * as cheerio from 'cheerio';
|
||||
import { Extractor } from './Extractor';
|
||||
import { buildMediaFlowProxyUrl, Fetcher, hasMediaFlowProxy } from '../utils';
|
||||
import { buildMediaFlowProxyExtractorRedirectUrl, Fetcher, hasMediaFlowProxy } from '../utils';
|
||||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { NotFoundError } from '../error';
|
||||
|
||||
|
|
@ -39,7 +39,7 @@ export class Mixdrop extends Extractor {
|
|||
|
||||
return [
|
||||
{
|
||||
url: buildMediaFlowProxyUrl(ctx.config, 'Mixdrop', url),
|
||||
url: buildMediaFlowProxyExtractorRedirectUrl(ctx.config, 'Mixdrop', url),
|
||||
format: Format.mp4,
|
||||
label: this.label,
|
||||
sourceId: `${this.id}_${countryCode}`,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import * as cheerio from 'cheerio';
|
||||
import { Extractor } from './Extractor';
|
||||
import { buildMediaFlowProxyUrl, Fetcher, hasMediaFlowProxy } from '../utils';
|
||||
import { buildMediaFlowProxyExtractorRedirectUrl, Fetcher, hasMediaFlowProxy } from '../utils';
|
||||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
|
||||
export class Uqload extends Extractor {
|
||||
|
|
@ -36,7 +36,7 @@ export class Uqload extends Extractor {
|
|||
|
||||
return [
|
||||
{
|
||||
url: buildMediaFlowProxyUrl(ctx.config, 'Uqload', url),
|
||||
url: buildMediaFlowProxyExtractorRedirectUrl(ctx.config, 'Uqload', url),
|
||||
format: Format.mp4,
|
||||
label: this.label,
|
||||
sourceId: `${this.id}_${countryCode}`,
|
||||
|
|
|
|||
|
|
@ -5,18 +5,3 @@ export const getDefaultConfig = (): Config => {
|
|||
};
|
||||
|
||||
export const showExternalUrls = (config: Config): boolean => 'includeExternalUrls' in config;
|
||||
|
||||
export const hasMediaFlowProxy = (config: Config): boolean => !!(config['mediaFlowProxyUrl'] && config['mediaFlowProxyPassword']);
|
||||
|
||||
export const buildMediaFlowProxyUrl = (config: Config, host: string, url: URL): URL => {
|
||||
const mediaFlowProxyUrl = new URL(`${config.mediaFlowProxyUrl}/extractor/video`);
|
||||
|
||||
const params = new URLSearchParams();
|
||||
params.append('host', host);
|
||||
params.append('redirect_stream', 'true');
|
||||
params.append('api_password', `${config.mediaFlowProxyPassword}`);
|
||||
params.append('d', url.href);
|
||||
mediaFlowProxyUrl.search = params.toString();
|
||||
|
||||
return mediaFlowProxyUrl;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -8,4 +8,5 @@ export * from './height';
|
|||
export * from './id';
|
||||
export * from './language';
|
||||
export * from './manifest';
|
||||
export * from './media-flow-proxy';
|
||||
export * from './tmdb';
|
||||
|
|
|
|||
16
src/utils/media-flow-proxy.ts
Normal file
16
src/utils/media-flow-proxy.ts
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import { Config } from '../types';
|
||||
|
||||
export const hasMediaFlowProxy = (config: Config): boolean => !!(config['mediaFlowProxyUrl'] && config['mediaFlowProxyPassword']);
|
||||
|
||||
export const buildMediaFlowProxyExtractorRedirectUrl = (config: Config, host: string, url: URL): URL => {
|
||||
const mediaFlowProxyUrl = new URL(`${config.mediaFlowProxyUrl}/extractor/video`);
|
||||
|
||||
const params = new URLSearchParams();
|
||||
params.append('host', host);
|
||||
params.append('redirect_stream', 'true');
|
||||
params.append('api_password', `${config.mediaFlowProxyPassword}`);
|
||||
params.append('d', url.href);
|
||||
mediaFlowProxyUrl.search = params.toString();
|
||||
|
||||
return mediaFlowProxyUrl;
|
||||
};
|
||||
Loading…
Reference in a new issue