Filters Redesign (#658)

* Add XCheckboxFilter

* Fix madara typo

* Change the branch name in config

* Add typing for madara popoularnovels filters

* Add preview and refactor PluginWrapper

* Add preview HTML sanitize and other improv.

* Web improvements + sanitizeHTML

* Add dark mode

* Add git run less to compile less

* Add less.js to remove the need for compiling less
This commit is contained in:
Marcin Majewski
2023-12-27 15:49:46 +01:00
committed by GitHub
parent 9cdace3460
commit d7a76063bf
170 changed files with 94169 additions and 80752 deletions
+28 -17
View File
@@ -1,4 +1,4 @@
import { FilterInputs } from "../../../libs/filterInputs";
import { Filters, FilterTypes } from "../../../libs/filterInputs";
import { ScrpitGeneratorFunction } from "../generate";
import list from "./sources.json";
import { RulateMetadata } from "./template";
@@ -6,29 +6,40 @@ import { readFileSync } from "fs";
import path from "path";
export const generateAll: ScrpitGeneratorFunction = function () {
return list.map((metadata: RulateMetadata) => {
return generator(metadata);
});
return list
.map((p) => {
let d = false;
const filters: Filters = {};
for (const k in p.filters) {
const f = p.filters[k as keyof typeof p.filters];
if (f) {
filters[k] = {
...f,
type: FilterTypes.Picker,
};
}
}
return { ...p, filters: d ? undefined : filters };
})
.map((metadata: RulateMetadata) => {
return generator(metadata);
});
};
const generator = function generator(metadata: RulateMetadata) {
const rulateTemplate = readFileSync(path.join(__dirname, "template.ts"), {
encoding: "utf-8",
});
metadata.filters = metadata.filters?.map((filter: any) => ({
...filter,
inputType: FilterInputs[filter.inputType],
}));
const rulateTemplate = readFileSync(path.join(__dirname, "template.ts"), {
encoding: "utf-8",
});
const pluginScript = `
const pluginScript = `
${rulateTemplate}
const plugin = new RulatePlugin(${JSON.stringify(metadata)});
export default plugin;
`.trim();
return {
lang: "russian",
filename: metadata.sourceName,
pluginScript,
};
return {
lang: "russian",
filename: metadata.sourceName,
pluginScript,
};
};