export const prettyDurationFromMinutes = (runtime) => { const hours = Math.floor(runtime / 60); const minutes = runtime % 60; let duration = ""; if (hours > 0) { duration += hours + "h"; } if (minutes > 0) { duration += ("0" + minutes).slice(-2); } if (hours === 0) { duration += " min"; } return duration; }; const pad = (d) => (d < 10 ? "0" + d.toString() : d.toString()); export const prettyEpisodeName = (showName, season, episode) => `${showName} S${pad(season)}E${pad(episode)}`; export const inLibrary = (element) => element.get("polochon_url", "") !== ""; export const isWishlisted = (element) => { const wishlisted = element.get("wishlisted", undefined); if (wishlisted !== undefined) { return wishlisted; } const trackedSeason = element.get("tracked_season", null); const trackedEpisode = element.get("tracked_episode", null); if (trackedSeason !== null && trackedEpisode !== null) { return true; } return false; }; export const isEpisodeWishlisted = (element, trackedSeason, trackedEpisode) => { if (trackedSeason === null && trackedEpisode === null) { return false; } if (trackedSeason === 0 && trackedEpisode === 0) { return true; } const season = element.get("season", 0); const episode = element.get("episode", 0); if (season < trackedSeason) { return false; } else if (season > trackedSeason) { return true; } else { return episode >= trackedEpisode; } }; export const prettySize = (fileSizeInBytes) => { var i = -1; var byteUnits = [" kB", " MB", " GB", " TB", "PB", "EB", "ZB", "YB"]; do { fileSizeInBytes = fileSizeInBytes / 1024; i++; } while (fileSizeInBytes > 1024); return Math.max(fileSizeInBytes, 0.1).toFixed(1) + byteUnits[i]; };