diff options
Diffstat (limited to 'utils/parseMetaData.ts')
| -rw-r--r-- | utils/parseMetaData.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/utils/parseMetaData.ts b/utils/parseMetaData.ts new file mode 100644 index 0000000..597c21c --- /dev/null +++ b/utils/parseMetaData.ts @@ -0,0 +1,36 @@ +type Episode = { + id: string; + description: string | null; + hasDub: boolean; + img: string | null; + isFiller: boolean; + number: number; + rating: number | null; + title: string; + updatedAt: number; +}; + +type Provider = { + providerId: string; + data: Episode[]; +}; + +export function getProviderWithMostEpisodesAndImage( + data: Provider[] +): Provider | null { + let maxEpisodesProvider: Provider | null = null; + + for (const provider of data) { + if ( + !maxEpisodesProvider || + provider.data.length > maxEpisodesProvider.data.length + ) { + const hasImage = provider.data.some((episode) => episode.img !== null); + if (hasImage) { + maxEpisodesProvider = provider; + } + } + } + + return maxEpisodesProvider; +} |