canape/frontend/js/utils.js
Grégoire Delattre bcadc48d5a Launch prettier with the --fix option
They've changed their default settings, this changes a lot of stuff in
our code base.
2020-04-01 17:55:34 +02:00

71 lines
1.7 KiB
JavaScript

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];
};