fix global rule bug

This commit is contained in:
Gabe Yuan
2023-08-08 18:16:00 +08:00
parent fe6543ac3f
commit c6e3b567b9

View File

@@ -41,25 +41,28 @@ export const getRules = async () => (await storage.getObj(STOKEY_RULES)) || [];
*/
export const matchRule = (rules, href) => {
const rule = rules.find((rule) =>
rule.pattern
.split(",")
.some((p) => p.trim() === "*" || href.includes(p.trim()))
rule.pattern.split(",").some((p) => href.includes(p.trim()))
);
const globalRule =
rules.find((rule) =>
rule.pattern.split(",").some((p) => p.trim() === "*")
) || GLOBLA_RULE;
if (!rule) {
return GLOBLA_RULE;
return globalRule;
}
if (!rule?.selector?.trim()) {
rule.selector = GLOBLA_RULE.selector;
}
rule.selector =
rule?.selector?.trim() ||
globalRule?.selector?.trim() ||
GLOBLA_RULE.selector;
rule.bgColor = rule?.bgColor?.trim() || GLOBLA_RULE?.bgColor?.trim();
rule.bgColor = rule?.bgColor?.trim() || globalRule?.bgColor?.trim();
["translator", "fromLang", "toLang", "textStyle", "transOpen"].forEach(
(key) => {
if (rule[key] === GLOBAL_KEY) {
rule[key] = GLOBLA_RULE[key];
rule[key] = globalRule[key];
}
}
);