diff options
| author | Factiven <[email protected]> | 2023-12-24 13:03:54 +0700 |
|---|---|---|
| committer | Factiven <[email protected]> | 2023-12-24 13:03:54 +0700 |
| commit | 50a0f0240d7fef133eb5acc1bea2b1168b08e9db (patch) | |
| tree | 307e09e505580415a58d64b5fc3580e9235869f1 /utils/parseMetaData.ts | |
| parent | Update README.md (#104) (diff) | |
| download | moopa-50a0f0240d7fef133eb5acc1bea2b1168b08e9db.tar.xz moopa-50a0f0240d7fef133eb5acc1bea2b1168b08e9db.zip | |
migrate to typescript
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; +} |