import type { Media } from './AniList/media'; const totalEpisodes = (anime: Media) => { return anime.episodes === null ? '' : `/${anime.episodes}`; }; export const airingTime = (anime: Media, upcoming = false) => { const untilAiring = anime.nextAiringEpisode?.timeUntilAiring; let timeFrame; if (untilAiring !== undefined) { let minutes = untilAiring / 60; if (minutes >= 30) { let hours = minutes / 60; if (hours >= 24) { let weeks = Math.floor(Math.floor(hours / 24) / 7); if (weeks >= 1) { weeks = Math.round(weeks); timeFrame = `${weeks} week${weeks === 1 ? '' : 's'}`; } else { const days = Math.round(Math.floor(hours / 24)); timeFrame = `${days} day${days === 1 ? '' : 's'}`; } } else { hours = Math.round(hours); timeFrame = `${hours} hour${hours === 1 ? '' : 's'}`; } } else { minutes = Math.round(minutes); timeFrame = `${minutes} minute${minutes === 1 ? '' : 's'}`; } if (upcoming) { return `${anime.nextAiringEpisode?.episode}${totalEpisodes(anime)} in ${timeFrame}`; } else { return `${anime.nextAiringEpisode?.episode} in ${timeFrame}`; } } return ''; };