MCPcopy Index your code
hub / github.com/hoothin/UserScripts / addNextRule

Function addNextRule

Pagetual/pagetual.user.js:10603–10658  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

10601 return fetchVersion > (rulesData.ruleVersion || 0);
10602 }
10603 async function addNextRule() {
10604 if (ruleIndex < 0) {
10605 let now = new Date().getTime();
10606 storage.setItem("ruleLastUpdate", now);
10607 storage.setItem("rules", ruleParser.rules);
10608 let curLength = ruleParser.rules.length;
10609 if (curLength !== preLength && rulesData.updateNotification) {
10610 _GM_notification({
10611 text: `Rules has updated( ${preLength} => ${curLength} )`,
10612 title: "Pagetual rules updated",
10613 onclick: (event) => {
10614 event.preventDefault();
10615 _GM_openInTab(configPage[0], {active: true});
10616 }
10617 });
10618 }
10619 inUpdate = false;
10620 let rulesDataChanged = false;
10621 if (fetchVersion >= 0 && rulesData.ruleVersion !== fetchVersion) {
10622 rulesData.ruleVersion = fetchVersion;
10623 rulesDataChanged = true;
10624 }
10625 if (rulesData.uninited && allOk && ruleUrls.length > 1) {
10626 rulesData.uninited = false;
10627 rulesDataChanged = true;
10628 }
10629 if (rulesDataChanged) {
10630 storage.setItem("rulesData", rulesData);
10631 }
10632 success();
10633 } else {
10634 let rule = ruleUrls[ruleIndex--];
10635 if (await needUpdate(rule.url, rule.id)) {
10636 ruleParser.addRuleByUrl(rule.url, rule.id, (json, err) => {
10637 if (!json) {
10638 if (!triedWedataMirrorFallback && switchToWedataMirrorOnFail(rule)) {
10639 triedWedataMirrorFallback = true;
10640 ruleParser.addRuleByUrl(rule.url, rule.id, (retryJson, retryErr) => {
10641 if (!retryJson) {
10642 allOk = false;
10643 fail(rule, retryErr);
10644 }
10645 addNextRule();
10646 });
10647 return;
10648 }
10649 allOk = false;
10650 fail(rule, err);
10651 }
10652 addNextRule();
10653 });
10654 } else {
10655 addNextRule();
10656 }
10657 }
10658 }
10659 addNextRule();
10660 }

Callers 1

updateRulesFunction · 0.85

Calls 3

needUpdateFunction · 0.85
addRuleByUrlMethod · 0.80

Tested by

no test coverage detected