blob: 5f74df3b0445749a70a2de73c62121ee565902f7 (
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
type Image = {
number?: number;
episode?: number;
img: string;
title: string;
description: string;
};
type Episode = {
number: number;
img?: string;
title?: string;
description?: string;
};
type ProviderEpisodes = {
episodes: Episode[];
};
async function appendMetaToEpisodes(
episodesData: ProviderEpisodes[],
images: Image[]
): Promise<ProviderEpisodes[]> {
// Create a dictionary for faster lookup of images based on episode number
const episodeImages: { [key: number]: Image } = {};
images.forEach((image) => {
image.episode && (episodeImages[image.episode] = image);
image.number && (episodeImages[image.number] = image);
});
// Iterate through each provider's episodes data
for (const providerEpisodes of episodesData) {
// Iterate through each episode in the provider's episodes data
for (const episode of providerEpisodes.episodes) {
// Get the episode number
const episodeNumber = episode.number;
// Check if there is an image available for this episode number
if (episodeImages[episodeNumber]) {
// Append the image URL to the episode data
episode.img = episodeImages[episodeNumber].img;
episode.title = episodeImages[episodeNumber].title;
episode.description = episodeImages[episodeNumber].description;
}
}
}
return episodesData;
}
export default appendMetaToEpisodes;
|