From e63d150506dfd731a5bbdd77e371f52492225e5d Mon Sep 17 00:00:00 2001 From: MemeCornucopia Date: Thu, 14 Dec 2023 13:11:17 -0500 Subject: [PATCH] Refactor type definitions and update function signatures --- src/providers/sources/lookmovie/type.ts | 21 +++++++++++++++++---- src/providers/sources/lookmovie/util.ts | 10 +++++----- src/providers/sources/lookmovie/video.ts | 6 +++++- 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/providers/sources/lookmovie/type.ts b/src/providers/sources/lookmovie/type.ts index e88f186..3731520 100644 --- a/src/providers/sources/lookmovie/type.ts +++ b/src/providers/sources/lookmovie/type.ts @@ -1,3 +1,5 @@ +import { MovieMedia } from '@/main/media'; + // ! Types interface BaseConfig { /** The website's slug. Formatted as `1839578-person-of-interest-2011` */ @@ -33,15 +35,26 @@ export interface ShowDataResult { episodes: episodeObj[]; } -export interface StreamsDataResult { - streams: any[]; +interface VideoSources { + [key: string]: string; } -export interface Result { +export interface StreamsDataResult { + streams: VideoSources; +} + +export interface ResultItem { title: string; slug: string; year: string; id_movie: string; id_show: string; - items: any[]; +} + +export interface Result { + title(media: MovieMedia, title: any, arg2: number): boolean; + year(year: any): number | undefined; + id_movie: any; + id_show: string; + items: ResultItem[]; } diff --git a/src/providers/sources/lookmovie/util.ts b/src/providers/sources/lookmovie/util.ts index d557f69..231e715 100644 --- a/src/providers/sources/lookmovie/util.ts +++ b/src/providers/sources/lookmovie/util.ts @@ -3,13 +3,13 @@ import { compareMedia } from '@/utils/compare'; import { ScrapeContext } from '@/utils/context'; import { NotFoundError } from '@/utils/errors'; -import { Result, ShowDataResult, episodeObj } from './type'; +import { Result, ResultItem, ShowDataResult, episodeObj } from './type'; import { getVideoUrl } from './video'; export async function searchAndFindMedia( ctx: ScrapeContext, media: MovieMedia | ShowMedia, -): Promise { +): Promise { if (media.type === 'show') { const searchRes = await ctx.fetcher(`/v1/shows`, { baseUrl: 'https://lmscript.xyz', @@ -18,7 +18,7 @@ export async function searchAndFindMedia( const results = searchRes.items; - const result = results.find((res: Result) => compareMedia(media, res.title, Number(res.year))); + const result = results.find((res: ResultItem) => compareMedia(media, res.title, Number(res.year))); return result; } if (media.type === 'movie') { @@ -28,12 +28,12 @@ export async function searchAndFindMedia( }); const results = searchRes.items; - const result = results.find((res: Result) => compareMedia(media, res.title, Number(res.year))); + const result = results.find((res: ResultItem) => compareMedia(media, res.title, Number(res.year))); return result; } } -export async function scrape(ctx: ScrapeContext, media: MovieMedia | ShowMedia, result: Result) { +export async function scrape(ctx: ScrapeContext, media: MovieMedia | ShowMedia, result: ResultItem) { // Find the relevant id let id = null; if (media.type === 'movie') { diff --git a/src/providers/sources/lookmovie/video.ts b/src/providers/sources/lookmovie/video.ts index bf47dd0..38ace62 100644 --- a/src/providers/sources/lookmovie/video.ts +++ b/src/providers/sources/lookmovie/video.ts @@ -3,7 +3,11 @@ import { ScrapeContext } from '@/utils/context'; import { StreamsDataResult } from './type'; -export async function getVideoSources(ctx: ScrapeContext, id: string, media: MovieMedia | ShowMedia): Promise { +export async function getVideoSources( + ctx: ScrapeContext, + id: string, + media: MovieMedia | ShowMedia, +): Promise { // Fetch video sources let path = '';