diff --git a/src/embed-extractor/EmbedExtractorRegistry.test.ts b/src/embed-extractor/EmbedExtractorRegistry.test.ts index 08286d3..7e1f010 100644 --- a/src/embed-extractor/EmbedExtractorRegistry.test.ts +++ b/src/embed-extractor/EmbedExtractorRegistry.test.ts @@ -1,11 +1,13 @@ +import winston from 'winston'; import { EmbedExtractorRegistry } from './EmbedExtractorRegistry'; import { Context } from '../types'; import { Fetcher } from '../utils'; jest.mock('../utils/Fetcher'); +const logger = winston.createLogger({ transports: [new winston.transports.Console({ level: 'nope' })] }); // @ts-expect-error No constructor args needed const fetcher = new Fetcher(); -const embedExtractors = new EmbedExtractorRegistry(fetcher); +const embedExtractors = new EmbedExtractorRegistry(logger, fetcher); describe('EmbedExtractorRegistry', () => { const ctx: Context = { ip: '127.0.0.1' }; diff --git a/src/embed-extractor/EmbedExtractorRegistry.ts b/src/embed-extractor/EmbedExtractorRegistry.ts index d256726..b8dcb2f 100644 --- a/src/embed-extractor/EmbedExtractorRegistry.ts +++ b/src/embed-extractor/EmbedExtractorRegistry.ts @@ -1,4 +1,5 @@ import TTLCache from '@isaacs/ttlcache'; +import winston from 'winston'; import { EmbedExtractor } from './types'; import { Context, UrlResult } from '../types'; import { Fetcher } from '../utils'; @@ -6,11 +7,12 @@ import { Dropload } from './Dropload'; import { SuperVideo } from './SuperVideo'; export class EmbedExtractorRegistry { + private readonly logger: winston.Logger; private readonly embedExtractors: EmbedExtractor[]; - private readonly urlResultCache: TTLCache; - constructor(fetcher: Fetcher) { + constructor(logger: winston.Logger, fetcher: Fetcher) { + this.logger = logger; this.embedExtractors = [ new Dropload(fetcher), new SuperVideo(fetcher), @@ -29,6 +31,8 @@ export class EmbedExtractorRegistry { return undefined; } + this.logger.info(`Extract stream URL using ${embedExtractor.id} extractor from ${url}`); + urlResult = await embedExtractor.extract(ctx, url, countryCode); this.urlResultCache.set(url.href, urlResult, { ttl: embedExtractor.ttl }); diff --git a/src/handler/FrenchCloud.test.ts b/src/handler/FrenchCloud.test.ts index 00cb239..e901ae2 100644 --- a/src/handler/FrenchCloud.test.ts +++ b/src/handler/FrenchCloud.test.ts @@ -1,12 +1,14 @@ +import winston from 'winston'; import { FrenchCloud } from './FrenchCloud'; import { Fetcher } from '../utils'; import { EmbedExtractorRegistry } from '../embed-extractor'; import { Context } from '../types'; jest.mock('../utils/Fetcher'); +const logger = winston.createLogger({ transports: [new winston.transports.Console({ level: 'nope' })] }); // @ts-expect-error No constructor args needed const fetcher = new Fetcher(); -const handler = new FrenchCloud(fetcher, new EmbedExtractorRegistry(fetcher)); +const handler = new FrenchCloud(fetcher, new EmbedExtractorRegistry(logger, fetcher)); const ctx: Context = { ip: '127.0.0.1' }; describe('FrenchCloud', () => { diff --git a/src/handler/KinoKiste.test.ts b/src/handler/KinoKiste.test.ts index f804216..9323c7a 100644 --- a/src/handler/KinoKiste.test.ts +++ b/src/handler/KinoKiste.test.ts @@ -1,12 +1,14 @@ +import winston from 'winston'; import { KinoKiste } from './KinoKiste'; import { EmbedExtractorRegistry } from '../embed-extractor'; import { Fetcher } from '../utils'; import { Context } from '../types'; jest.mock('../utils/Fetcher'); +const logger = winston.createLogger({ transports: [new winston.transports.Console({ level: 'nope' })] }); // @ts-expect-error No constructor args needed const fetcher = new Fetcher(); -const handler = new KinoKiste(fetcher, new EmbedExtractorRegistry(fetcher)); +const handler = new KinoKiste(fetcher, new EmbedExtractorRegistry(logger, fetcher)); const ctx: Context = { ip: '127.0.0.1' }; describe('KinoKiste', () => { diff --git a/src/handler/MeineCloud.test.ts b/src/handler/MeineCloud.test.ts index 61b569d..1986b3d 100644 --- a/src/handler/MeineCloud.test.ts +++ b/src/handler/MeineCloud.test.ts @@ -1,12 +1,14 @@ +import winston from 'winston'; import { MeineCloud } from './MeineCloud'; import { Fetcher } from '../utils'; import { EmbedExtractorRegistry } from '../embed-extractor'; import { Context } from '../types'; jest.mock('../utils/Fetcher'); +const logger = winston.createLogger({ transports: [new winston.transports.Console({ level: 'nope' })] }); // @ts-expect-error No constructor args needed const fetcher = new Fetcher(); -const handler = new MeineCloud(fetcher, new EmbedExtractorRegistry(fetcher)); +const handler = new MeineCloud(fetcher, new EmbedExtractorRegistry(logger, fetcher)); const ctx: Context = { ip: '127.0.0.1' }; describe('MeineCloud', () => { diff --git a/src/handler/MostraGuarda.test.ts b/src/handler/MostraGuarda.test.ts index 6ef9192..61a9d16 100644 --- a/src/handler/MostraGuarda.test.ts +++ b/src/handler/MostraGuarda.test.ts @@ -1,12 +1,14 @@ +import winston from 'winston'; import { MostraGuarda } from './MostraGuarda'; import { Fetcher } from '../utils'; import { EmbedExtractorRegistry } from '../embed-extractor'; import { Context } from '../types'; jest.mock('../utils/Fetcher'); +const logger = winston.createLogger({ transports: [new winston.transports.Console({ level: 'nope' })] }); // @ts-expect-error No constructor args needed const fetcher = new Fetcher(); -const handler = new MostraGuarda(fetcher, new EmbedExtractorRegistry(fetcher)); +const handler = new MostraGuarda(fetcher, new EmbedExtractorRegistry(logger, fetcher)); const ctx: Context = { ip: '127.0.0.1' }; describe('MostraGuarda', () => { diff --git a/src/handler/VerHdLink.test.ts b/src/handler/VerHdLink.test.ts index 8c3ae19..65250ab 100644 --- a/src/handler/VerHdLink.test.ts +++ b/src/handler/VerHdLink.test.ts @@ -1,12 +1,14 @@ +import winston from 'winston'; import { VerHdLink } from './VerHdLink'; import { Fetcher } from '../utils'; import { EmbedExtractorRegistry } from '../embed-extractor'; import { Context } from '../types'; jest.mock('../utils/Fetcher'); +const logger = winston.createLogger({ transports: [new winston.transports.Console({ level: 'nope' })] }); // @ts-expect-error No constructor args needed const fetcher = new Fetcher(); -const handler = new VerHdLink(fetcher, new EmbedExtractorRegistry(fetcher)); +const handler = new VerHdLink(fetcher, new EmbedExtractorRegistry(logger, fetcher)); const ctx: Context = { ip: '127.0.0.1' }; describe('VerHdLink', () => { diff --git a/src/index.ts b/src/index.ts index 71e1297..b1330b5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -21,7 +21,7 @@ const logger = winston.createLogger({ const fetcher = new Fetcher(setupCache(axios), logger); -const embedExtractors = new EmbedExtractorRegistry(fetcher); +const embedExtractors = new EmbedExtractorRegistry(logger, fetcher); const handlers: Handler[] = [ new FrenchCloud(fetcher, embedExtractors), diff --git a/src/utils/StreamResolver.test.ts b/src/utils/StreamResolver.test.ts index 68ae332..3b11381 100644 --- a/src/utils/StreamResolver.test.ts +++ b/src/utils/StreamResolver.test.ts @@ -5,12 +5,14 @@ import { MeineCloud, MostraGuarda } from '../handler'; import { Fetcher } from './Fetcher'; import { Context } from '../types'; jest.mock('../utils/Fetcher'); -const streamResolver = new StreamResolver(winston.createLogger({ transports: [new winston.transports.Console({ level: 'nope' })] })); + +const logger = winston.createLogger({ transports: [new winston.transports.Console({ level: 'nope' })] }); +const streamResolver = new StreamResolver(logger); const ctx: Context = { ip: '127.0.0.1' }; // @ts-expect-error No constructor args needed const fetcher = new Fetcher(); -const embedExtractorRegistry = new EmbedExtractorRegistry(fetcher); +const embedExtractorRegistry = new EmbedExtractorRegistry(logger, fetcher); const meineCloud = new MeineCloud(fetcher, embedExtractorRegistry); const mostraGuarda = new MostraGuarda(fetcher, embedExtractorRegistry); diff --git a/src/utils/manifest.test.ts b/src/utils/manifest.test.ts index 3f5ed7a..b7d1c41 100644 --- a/src/utils/manifest.test.ts +++ b/src/utils/manifest.test.ts @@ -1,8 +1,10 @@ +import winston from 'winston'; import { buildManifest } from './manifest'; import { KinoKiste } from '../handler'; import { Fetcher } from './Fetcher'; import { EmbedExtractorRegistry } from '../embed-extractor'; +const logger = winston.createLogger({ transports: [new winston.transports.Console({ level: 'nope' })] }); // @ts-expect-error No constructor args needed const fetcher = new Fetcher(); @@ -14,14 +16,14 @@ describe('buildManifest', () => { }); test('has unchecked handler without a config', () => { - const manifest = buildManifest([new KinoKiste(fetcher, new EmbedExtractorRegistry(fetcher))], {}); + const manifest = buildManifest([new KinoKiste(fetcher, new EmbedExtractorRegistry(logger, fetcher))], {}); expect(manifest.config).toHaveLength(1); expect(manifest.config[0]?.default).toBeUndefined(); }); test('has checked handler with appropriate config', () => { - const kinokiste = new KinoKiste(fetcher, new EmbedExtractorRegistry(fetcher)); + const kinokiste = new KinoKiste(fetcher, new EmbedExtractorRegistry(logger, fetcher)); const manifest = buildManifest([kinokiste], { [kinokiste.id]: 'on' }); expect(manifest.config).toHaveLength(1);