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/combineImages.ts | |
| parent | Update README.md (#104) (diff) | |
| download | moopa-50a0f0240d7fef133eb5acc1bea2b1168b08e9db.tar.xz moopa-50a0f0240d7fef133eb5acc1bea2b1168b08e9db.zip | |
migrate to typescript
Diffstat (limited to 'utils/combineImages.ts')
| -rw-r--r-- | utils/combineImages.ts | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/utils/combineImages.ts b/utils/combineImages.ts new file mode 100644 index 0000000..01b7ef3 --- /dev/null +++ b/utils/combineImages.ts @@ -0,0 +1,43 @@ +interface Image { + episode: number; + img: string; +} + +interface Episode { + number: number; + img?: string; +} + +interface ProviderEpisodes { + episodes: Episode[]; +} + +async function appendImagesToEpisodes( + episodesData: ProviderEpisodes[], + images: Image[] +) { + // Create a dictionary for faster lookup of images based on episode number + const episodeImages: { [key: number]: string } = {}; + images.forEach((image) => { + episodeImages[image.episode] = image.img; + }); + + // 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]; + } + } + } + + return episodesData; +} + +export default appendImagesToEpisodes; |