()
| 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 | } |
no test coverage detected