diff --git a/src/utils/opensubtitles.ts b/src/utils/opensubtitles.ts index bdfc795..e380261 100644 --- a/src/utils/opensubtitles.ts +++ b/src/utils/opensubtitles.ts @@ -1,29 +1,44 @@ -import { Caption, labelToLanguageCode, removeDuplicatedLanguages } from '@/providers/captions'; -import { IndividualEmbedRunnerOptions } from '@/runners/individualRunner'; -import { ProviderRunnerOptions } from '@/runners/runner'; +import { + Caption, + labelToLanguageCode, + removeDuplicatedLanguages, +} from "@/providers/captions"; +import { IndividualEmbedRunnerOptions } from "@/runners/individualRunner"; +import { ProviderRunnerOptions } from "@/runners/runner"; export async function addOpenSubtitlesCaptions( captions: Caption[], ops: ProviderRunnerOptions | IndividualEmbedRunnerOptions, - media: string, + media: string ): Promise { try { const [imdbId, season, episode] = atob(media) - .split('.') + .split(".") .map((x, i) => (i === 0 ? x : Number(x) || null)); if (!imdbId) return captions; - const Res: { LanguageName: string; SubDownloadLink: string; SubFormat: 'srt' | 'vtt' }[] = await ops.proxiedFetcher( - `https://rest.opensubtitles.org/search/${season && episode ? `episode-${episode}/` : ''}imdbid-${(imdbId as string).slice(2)}${season && episode ? `/season-${season}` : ''}`, + const Res: { + LanguageName: string; + SubDownloadLink: string; + SubFormat: "srt" | "vtt"; + }[] = await ops.proxiedFetcher( + `https://rest.opensubtitles.org/search/${ + season && episode ? `episode-${episode}/` : "" + }imdbid-${(imdbId as string).slice(2)}${ + season && episode ? `/season-${season}` : "" + }`, { headers: { - 'X-User-Agent': 'VLSub 0.10.2', + "X-User-Agent": "VLSub 0.10.2", }, - }, + } ); const openSubtilesCaptions: Caption[] = []; for (const caption of Res) { - const url = caption.SubDownloadLink.replace('.gz', '').replace('download/', 'download/subencoding-utf8/'); + const url = caption.SubDownloadLink.replace(".gz", "").replace( + "download/", + "download/subencoding-utf8/" + ); const language = labelToLanguageCode(caption.LanguageName); if (!url || !language) continue; else @@ -31,15 +46,12 @@ export async function addOpenSubtitlesCaptions( id: url, opensubtitles: true, url, - type: caption.SubFormat || 'srt', + type: caption.SubFormat || "srt", hasCorsRestrictions: false, language, }); } - return [ - ...captions, - ...removeDuplicatedLanguages(openSubtilesCaptions), - ]; + return [...captions, ...removeDuplicatedLanguages(openSubtilesCaptions)]; } catch { return captions; }