注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
?_=1
来访问最新页面。https://zh.moegirl.org.cn/User:%E4%B8%80%E4%BD%8D%E5%8F%B2%E8%92%82%E5%A4%AB/JS/MarkAsResolved.js?_=1
/* MarkAsResolved.js by User:AnnAngela Adapted for autoconfirmed by User:一位史蒂夫 Warning:Abuse of this tool is prohibited! Original script: https://zh.moegirl.org.cn/User:AnnAngela/js/MarkAsResolved.js More versions (upward compatible) : > Goodeditor [[User:Leranjun/MarkAsResolved.js]] > Patroller [[User:AnnAngela/js/MarkAsResolved.js]] */ // <pre> "use strict"; (async function () { if (!mw.config.get("wgPageName").startsWith("萌娘百科_talk:讨论版/")) { return; } if (!mw.config.get("wgUserGroups").includes("autoconfirmed")) { return; } mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/User:AnnAngela/js/quick-save.js/style.css?action=raw&ctype=text/css", "text/css"); await mw.loader.using(["mw.Api", "mediawiki.Uri"]); var runningFlag = false; var container = $("<div class=\"AnnTools_Frame\" style=\"display: none;\"><div class=\"AnnTools_Frame_Head\"><div class=\"AnnTools_Frame_Title\">公共讨论页MAR工具(自确版)</div><span class=\"AnnTools_Frame_Close\">×</span></div><div class=\"AnnTools_Frame_Content\"><div class=\"AnnTools_Confirm\" id=\"AnnTools_Confirm_First\"><div class=\"AnnTools_Confirm_Content\">请问你是要标记这个段落吗?<br>段落标题:<span class=\"AnnTools_SectionTitle\"></span></div><div class=\"AnnTools_Confirm_Yes\">是呀是呀</div><div class=\"AnnTools_Confirm_No\">并不是呢</div></div><div class=\"AnnTools_Confirm AnnTools_Confirm_expand\" id=\"AnnTools_Confirm_Second\"><div class=\"AnnTools_Confirm_Content\">请问你想标记这个段落为什么状态?<br>段落标题:<span class=\"AnnTools_SectionTitle\"></span><dl><dt>状态:</dt><dd><ul class=\"AnnTools_form\"><li><input class=\"AnnTools_radio\" value=\"r\" id=\"AnnTools_radio_r\" type=\"radio\" checked=\"checked\"><label for=\"AnnTools_radio_r\">问题已解决</label></li><li><input class=\"AnnTools_radio\" value=\"p\" id=\"AnnTools_radio_p\" type=\"radio\"><label for=\"AnnTools_radio_p\">问题已答复</label></li><li><input class=\"AnnTools_radio\" value=\"w\" id=\"AnnTools_radio_w\" type=\"radio\" ><label for=\"AnnTools_radio_w\">请求被撤回</label></li><li><input class=\"AnnTools_radio\" value=\"n\" id=\"AnnTools_radio_n\" type=\"radio\"><label for=\"AnnTools_radio_n\">无人回复<s>(点名批评)</s></label></li></ul></dd><dt>前置留言:</dt><dd><input id=\"AnnTools_precomment\" type=\"text\" size=\"255\" placeholder=\"(但是如果不写就啥也没有)\"></dd><dt>留言:</dt><dd><input id=\"AnnTools_comment\" type=\"text\" size=\"255\" placeholder=\"(但是如果不写就啥也没有)\"></dd></dl></div><div class=\"AnnTools_Confirm_Yes\">就是这样</div><div class=\"AnnTools_Confirm_No\">我再想想</div><div class=\"AnnTools_status\"></div></div></div></div>").appendTo("body"), api = new mw.Api(); // container.find("#AnnTools_comment").val(localStorage.getItem("AnnTools_MarkAsResolved_comment") || ""); var offsets = { n: 10, s: 10 }; var toggle = function toggle(type) { var isHide = type === "hide"; $(".AnnTools_form .AnnTools_radio" + (isHide ? ":not(:checked)" : "")).closest("li")[isHide ? "hide" : "show"](); $("#AnnTools_precomment, #AnnTools_comment").each(function (_, input) { var $input = $(input); if (!isHide || ($input.val() || "").length === 0) { $input.closest("dd")[isHide ? "hide" : "show"](); $input.closest("dd").prev()[isHide ? "hide" : "show"](); } }); var inputs = container.find("input"); if (isHide) { inputs.attr("disabled", "disabled"); } else { inputs.removeAttr("disabled"); } }; container.on("click", function (event) { if (runningFlag) { return; } var target = $(event.target); if (target.is(".AnnTools_Frame_Close") && !target.is(".disable")) { container.fadeOut(370).queue(function () { container.find(".AnnTools_Confirm").removeAttr("style"); $(this).dequeue(); }); toggle("show"); } else if (target.is("#AnnTools_Confirm_First .AnnTools_Confirm_Yes")) { container.find("#AnnTools_Confirm_First").hide(); container.find("#AnnTools_Confirm_Second").show(); } else if (target.is("#AnnTools_Confirm_Second .AnnTools_Confirm_Yes")) { container.trigger("submit"); } else if (target.is(".AnnTools_Confirm_No")) { container.fadeOut(370).queue(function () { container.find(".AnnTools_Confirm").removeAttr("style"); $(this).dequeue(); }); toggle("show"); } else if (target.is(".AnnTools_radio")) { target.closest(".AnnTools_form").find(".AnnTools_radio:checked").prop("checked", false); target.prop("checked", true); } }).on("submit", async function () { try { if (typeof Object.fromEntries !== "function") { throw new Error("请更新浏览器到最新版本以使用本工具(最低可用版本为 Chrome & Edge: 73+, Firefox: 63+, Safari: 12.1+)"); } runningFlag = true; container.find(".AnnTools_Confirm_Yes, .AnnTools_Confirm_No").text("正在运行"); container.find(".AnnTools_status").text("正在标记中……"); toggle("hide"); var c = $("#AnnTools_comment").val(); var v = container.find(".AnnTools_radio:checked").val(); var pc = $("#AnnTools_precomment").val() || ""; var hash = container.data("sectionTitle"); var toclist = Object.fromEntries((await api.post({ action: "parse", format: "json", pageid: mw.config.get("wgArticleId"), prop: "sections" })).parse.sections.map(function (_ref) { var anchor = _ref.anchor; var index = _ref.index; return [anchor, index]; })); if (!(hash in toclist)) { throw new Error("请移除该标题内的模板后再行操作……"); } var section = toclist[hash]; await api.postWithToken("csrf", { action: "edit", pageid: mw.config.get("wgArticleId"), section: section, summary: "标记讨论串「/* " + container.data("sectionTitle") + " */」状态为【" + container.find(".AnnTools_radio:checked + label").text() + "】", tags: "Automation tool", nocreate: true, appendtext: (pc.length > 0 ? "\n:" + pc + "--~~~~" : "") + "\n\n{{MarkAsResolved|time={{subst:#timel:Ymd}}|status=" + (v in offsets ? v + "|archive-offset=" + offsets[v] : v) + "|comment=" + c + "|sign=~~~~}}" }); container.find(".AnnTools_status").text("编辑完成!即将刷新!").addClass("AnnTools_WorkDetail_Succeed"); // localStorage.setItem("AnnTools_MarkAsResolved_comment", c); setTimeout(function () { location.reload(false); }, 1307); } catch (e) { console.error("MarkAsResolved.js", e); container.find(".AnnTools_status").text("发生错误:" + e); runningFlag = false; container.find(".AnnTools_Confirm_Yes").text("就是这样"); container.find(".AnnTools_Confirm_No").text("我再想想"); toggle("show"); } }); $("#mw-content-text > .mw-parser-output > h2, #mw-content-text > .mw-parser-output > .discussionContainer > h2").each(function () { var self = $(this); var content = self.nextUntil("h2").not("h2"); if (content.hasClass("saveNotice") || content.hasClass("MarkAsResolved")) { return; } var sectionTitle = self.find(".mw-headline").attr("id"); self.find(".mw-editsection-bracket").first().after('<span class="mw-editsection-divider"> | </span>').after('<a href="javascript:void(0)" class="AnnTools_MarkAsResolved">标记状态</a>'); self.on("click", function (event) { if (!$(event.target).is(".AnnTools_MarkAsResolved") || container.is(":visible")) { return true; } container.find(".AnnTools_SectionTitle").text(sectionTitle); container.data({ sectionTitle: sectionTitle }).fadeIn(370); }); var quicksave = self.find(".AnnTools_QuickSave"); if (quicksave[0]) { var divider = quicksave.next(".mw-editsection-divider"); self.find(".mw-editsection .mw-editsection-bracket").first().after(divider).after(quicksave); } }); })(); // </pre>