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

Function createImportBtn

Pagetual/pagetual.user.js:9581–9707  ·  view source on GitHub ↗
(pre)

Source from the content-addressed store, hash-verified

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) {

Callers 1

initConfigFunction · 0.85

Calls 4

showTipsFunction · 0.85
updateRulesFunction · 0.85
debugFunction · 0.85
i18nFunction · 0.70

Tested by

no test coverage detected