aboutsummaryrefslogtreecommitdiff
path: root/utils/parseMetaData.ts
blob: 597c21c0ce64ebe1f8b02c778ad818b53924f877 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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;
}