aboutsummaryrefslogtreecommitdiff
path: root/utils/parseMetaData.ts
diff options
context:
space:
mode:
authorFactiven <[email protected]>2023-12-24 13:03:54 +0700
committerFactiven <[email protected]>2023-12-24 13:03:54 +0700
commit50a0f0240d7fef133eb5acc1bea2b1168b08e9db (patch)
tree307e09e505580415a58d64b5fc3580e9235869f1 /utils/parseMetaData.ts
parentUpdate README.md (#104) (diff)
downloadmoopa-50a0f0240d7fef133eb5acc1bea2b1168b08e9db.tar.xz
moopa-50a0f0240d7fef133eb5acc1bea2b1168b08e9db.zip
migrate to typescript
Diffstat (limited to 'utils/parseMetaData.ts')
-rw-r--r--utils/parseMetaData.ts36
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;
+}