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) => { export const matchRule = (rules, href) => {
const rule = rules.find((rule) => const rule = rules.find((rule) =>
rule.pattern rule.pattern.split(",").some((p) => href.includes(p.trim()))
.split(",")
.some((p) => p.trim() === "*" || href.includes(p.trim()))
); );
const globalRule =
rules.find((rule) =>
rule.pattern.split(",").some((p) => p.trim() === "*")
) || GLOBLA_RULE;
if (!rule) { if (!rule) {
return GLOBLA_RULE; return globalRule;
} }
if (!rule?.selector?.trim()) { rule.selector =
rule.selector = GLOBLA_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( ["translator", "fromLang", "toLang", "textStyle", "transOpen"].forEach(
(key) => { (key) => {
if (rule[key] === GLOBAL_KEY) { if (rule[key] === GLOBAL_KEY) {
rule[key] = GLOBLA_RULE[key]; rule[key] = globalRule[key];
} }
} }
); );