@houdoku/extension-mangalife
Version:
{"id":"859e5a3d-8ee4-4e38-b270-c8c3c80771d2","name":"MangaLife","url":"https://manga4life.com","version":"1.4.2","translatedLanguage":"ENGLISH","hasSettings":false}
44 lines • 2.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.applySort = exports.applyTriStateFilter = void 0;
const houdoku_extension_lib_1 = require("houdoku-extension-lib");
const filters_1 = require("./filters");
const applyTriStateFilter = (entries, entryKey, toggleValues) => {
const toggleEntries = Object.entries(toggleValues);
let filtered = entries;
const includeTags = toggleEntries.filter(([, value]) => value === houdoku_extension_lib_1.TriState.INCLUDE);
if (includeTags.length > 0) {
filtered = filtered.filter((entry) => includeTags.every(([includeTag]) => entry[entryKey] === includeTag || entry[entryKey].includes(includeTag)));
}
const excludeTags = toggleEntries.filter(([, value]) => value === houdoku_extension_lib_1.TriState.EXCLUDE);
if (excludeTags.length > 0) {
filtered = filtered.filter((entry) => excludeTags.every(([excludeTag]) => entry[entryKey] !== excludeTag && !entry.genres.includes(excludeTag)));
}
return filtered;
};
exports.applyTriStateFilter = applyTriStateFilter;
const applySort = (entries, sortValue) => {
switch (sortValue.key) {
case filters_1.SortType.POPULARITY:
entries.sort((a, b) => sortValue.direction === houdoku_extension_lib_1.SortDirection.DESCENDING
? b.popularity - a.popularity
: a.popularity - b.popularity);
break;
case filters_1.SortType.YEAR:
entries.sort((a, b) => sortValue.direction === houdoku_extension_lib_1.SortDirection.DESCENDING ? b.year - a.year : a.year - b.year);
break;
case filters_1.SortType.UPDATED:
entries.sort((a, b) => sortValue.direction === houdoku_extension_lib_1.SortDirection.DESCENDING
? b.lastScanReleased - a.lastScanReleased
: a.lastScanReleased - b.lastScanReleased);
break;
case filters_1.SortType.TITLE:
entries.sort((a, b) => sortValue.direction === houdoku_extension_lib_1.SortDirection.DESCENDING
? b.seriesName.localeCompare(a.seriesName)
: a.seriesName.localeCompare(b.seriesName));
break;
}
return entries;
};
exports.applySort = applySort;
//# sourceMappingURL=util.js.map