(pre)
| 9579 | let defaultOption = document.querySelector('#discussion_rating_4'); |
| 9580 | if (defaultOption) defaultOption.checked = true; |
| 9581 | let createImportBtn = (pre) => { |
| 9582 | let importBtn = document.createElement("button"); |
| 9583 | importBtn.id = "pagetualImport"; |
| 9584 | importBtn.innerText = i18n("import"); |
| 9585 | importBtn.style.marginTop = "100px"; |
| 9586 | importBtn.style.float = "right"; |
| 9587 | importBtn.style.position = "relative"; |
| 9588 | importBtn.style.display = "block"; |
| 9589 | importBtn.style.fontSize = "20px"; |
| 9590 | importBtn.addEventListener("click", e => { |
| 9591 | let parentNode = importBtn.parentNode; |
| 9592 | if (!parentNode || !e.isTrusted) return; |
| 9593 | parentNode.removeChild(importBtn); |
| 9594 | try { |
| 9595 | let rules = parentNode.innerText.trim(); |
| 9596 | let isContent = /['"]name['"]/i.test(rules); |
| 9597 | if (isContent) { |
| 9598 | let ruleList = JSON.parse(`[${rules}]`); |
| 9599 | for (let i in ruleList) { |
| 9600 | let hasRule = false; |
| 9601 | let r = ruleList[i]; |
| 9602 | for (let j in ruleParser.customRules) { |
| 9603 | if (ruleParser.customRules[j].name == r.name) { |
| 9604 | ruleParser.customRules[j] = r; |
| 9605 | hasRule = true; |
| 9606 | break; |
| 9607 | } |
| 9608 | } |
| 9609 | if (!hasRule) ruleParser.customRules.push(r); |
| 9610 | ruleParser.hpRules.unshift(r); |
| 9611 | } |
| 9612 | storage.setItem("customRules", ruleParser.customRules); |
| 9613 | storage.setItem("hpRules", ruleParser.hpRules); |
| 9614 | storage.setItem("smartRules", []); |
| 9615 | showTips(i18n("importSucc")); |
| 9616 | } else { |
| 9617 | rules = rules.split("\n"); |
| 9618 | let diff = false; |
| 9619 | for (let c = 0; c < rules.length; c++) { |
| 9620 | let urlArr = rules[c].split("|"), url, type = 1; |
| 9621 | if (urlArr.length == 1) { |
| 9622 | url = urlArr[0].trim(); |
| 9623 | if (!/^http/.test(url)) { |
| 9624 | showTips(i18n("errorWrongUrl")); |
| 9625 | return; |
| 9626 | } |
| 9627 | } else if (urlArr.length == 2) { |
| 9628 | type = urlArr[0].trim(); |
| 9629 | url = urlArr[1].trim(); |
| 9630 | if (!/^http/.test(url)) { |
| 9631 | showTips(i18n("errorWrongUrl")); |
| 9632 | return; |
| 9633 | } |
| 9634 | } else { |
| 9635 | break; |
| 9636 | } |
| 9637 | let maxId = 1, hasUrl = false; |
| 9638 | if (!rulesData.urls) { |
no test coverage detected