diff --git a/src/embed-extractor/Dropload.ts b/src/embed-extractor/Dropload.ts index c824998..09acbe3 100644 --- a/src/embed-extractor/Dropload.ts +++ b/src/embed-extractor/Dropload.ts @@ -8,6 +8,8 @@ export class Dropload implements EmbedExtractor { readonly label = 'Dropload'; + readonly ttl = 900000; // 15m + private readonly fetcher: Fetcher; constructor(fetcher: Fetcher) { diff --git a/src/embed-extractor/EmbedExtractors.ts b/src/embed-extractor/EmbedExtractors.ts index 5966a69..e1ee59d 100644 --- a/src/embed-extractor/EmbedExtractors.ts +++ b/src/embed-extractor/EmbedExtractors.ts @@ -9,7 +9,7 @@ export class EmbedExtractors { constructor(embedExtractors: EmbedExtractor[]) { this.embedExtractors = embedExtractors; - this.urlResultCache = new TTLCache({ max: 1024, ttl: 900000 }); // 15m + this.urlResultCache = new TTLCache({ max: 1024 }); } readonly handle = async (ctx: Context, url: URL, language: string): Promise => { @@ -24,7 +24,7 @@ export class EmbedExtractors { } urlResult = await embedExtractor.extract(ctx, url, language); - this.urlResultCache.set(url.href, urlResult); + this.urlResultCache.set(url.href, urlResult, { ttl: embedExtractor.ttl }); return urlResult; }; diff --git a/src/embed-extractor/SuperVideo.ts b/src/embed-extractor/SuperVideo.ts index 5fb5ee6..15275c2 100644 --- a/src/embed-extractor/SuperVideo.ts +++ b/src/embed-extractor/SuperVideo.ts @@ -8,6 +8,8 @@ export class SuperVideo implements EmbedExtractor { readonly label = 'SuperVideo'; + readonly ttl = 900000; // 15m + private readonly fetcher: Fetcher; constructor(fetcher: Fetcher) { diff --git a/src/embed-extractor/types.ts b/src/embed-extractor/types.ts index 24fd16c..a54df07 100644 --- a/src/embed-extractor/types.ts +++ b/src/embed-extractor/types.ts @@ -5,6 +5,8 @@ export interface EmbedExtractor { readonly label: string; + readonly ttl: number; + readonly supports: (url: URL) => boolean; readonly extract: (ctx: Context, url: URL, language: string) => Promise;