-
Notifications
You must be signed in to change notification settings - Fork 3
/
Wikiplus.min.js
15 lines (15 loc) · 34.4 KB
/
Wikiplus.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* Wikiplus-3.0 v0.0.5
* 2016-11-01
*
* Github:https://github.com/Wikiplus/Wikiplus-3.0
*
* Include MoeNotification
* https://github.com/Wikiplus/MoeNotification
*
* Copyright by Wikiplus, Eridanus Sora, Ted Zyzsdy and other contributors
* Licensed under Apache License 2.0
* http://wikiplus-app.smartgslb.com/
*/
!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0}),c.Wikipage=void 0;var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=a("./api");c.Wikipage=function(){function a(){var b=this,c=arguments.length<=0||void 0===arguments[0]?window.mw.config.values.wgPageName:arguments[0];d(this,a),this.title=c,this.info=Promise.all([f.API.getEditToken(c),f.API.getTimeStamp(c)]).then(function(a){b.editToken=a[0],b.timeStamp=a[1],console.log("获取页面"+c+"信息成功")})["catch"](function(a){console.error("获取页面基础信息失败:",a)}),this.wikiTextCache={},this.lastestRevision=window.mw.config.values.wgCurRevisionId}return e(a,[{key:"redirectTo",value:function(a){var b=this;this.info=this.info.then(function(){f.API.redirectTo(a,b.editToken)})}},{key:"redirectFrom",value:function(a){var b=this;this.info=this.info.then(function(){f.API.redirectFrom(a,b.editToken)})}},{key:"setContent",value:function(a){var b=this,c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return new Promise(function(d,e){b.info=b.info.then(function(){f.API.edit($.extend({title:b.title,token:b.editToken,basetimestamp:b.timeStamp,text:a},c)).then(function(a){d(a)})["catch"](function(a){e(a)})})})}},{key:"getWikiText",value:function(){var a=this,b=arguments.length<=0||void 0===arguments[0]?"page":arguments[0],c=arguments.length<=1||void 0===arguments[1]?void 0:arguments[1];return new Promise(function(d,e){c?a.wikiTextCache[c+"#"+b]?d(a.wikiTextCache[c+"#"+b]):a.info=a.info.then(function(){f.API.getWikiText(a.title,b,c).then(function(e){a.wikiTextCache[c+"#"+b]=e,d(e)})["catch"](e)}):a.wikiTextCache[""+b]?d(a.wikiTextCache[""+b]):a.info=a.info.then(function(){f.API.getWikiText(a.title,b).then(function(c){a.wikiTextCache[""+b]=c,d(c)})})})}},{key:"parseWikiText",value:function(){var a=this,b=arguments.length<=0||void 0===arguments[0]?"":arguments[0];arguments.length<=1||void 0===arguments[1]?this.title:arguments[1];return new Promise(function(c,d){a.info=a.info.then(function(){f.API.parseWikiText(b,a.title).then(c)["catch"](d)})})}}]),a}()},{"./api":2}],2:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0}),c.API=void 0;var f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),g=a("./i18n"),h=d(g),i=(a("./version"),a("./log")),j=new i.Log;c.API=function(){function a(){e(this,a)}return f(a,null,[{key:"getAPIURL",value:function(){return location.protocol+"//"+location.host+window.mw.config.values.wgScriptPath+"/api.php"}},{key:"getThisPageName",value:function(){var a=window.mw.config.values.wgPageName;if(void 0===a)throw new Error("Fail to get the title of this page.");return a}},{key:"getUsername",value:function(){var a=window.mw.user.id;if(void 0===a)throw new Error("Fail to get the title of this page.");return a()}},{key:"getEditToken",value:function(a){var b=this;return new Promise(function(a,c){window.mw.user.tokens.get("editToken")&&"+\\"!==window.mw.user.tokens.get("editToken")?a(window.mw.user.tokens.get("editToken")):$.ajax({url:b.API,type:"GET",dataType:"json",data:{action:"query",meta:"tokens",format:"json"},success:function(b){b.query&&b.query.tokens&&b.query.tokens.csrftoken&&"+\\"!==b.query.tokens.csrftoken?a(b.query.tokens.csrftoken):(j.error("fail_to_get_edittoken"),c((0,h["default"])("fail_to_get_edittoken")))},error:function(a){j.error("fail_to_get_edittoken"),c((0,h["default"])("fail_to_get_edittoken"))}})})}},{key:"getTimeStamp",value:function(a){var b=this;return new Promise(function(c,d){$.ajax({url:b.getAPIURL(),type:"GET",dataType:"json",data:{action:"query",prop:"revisions|info",titles:a,rvprop:"timestamp",format:"json"},beforeSend:function(){console.time("获得页面基础信息时间耗时")},success:function(a){if(a&&a.query&&a.query.pages){var b=a.query.pages;for(var e in b)"-1"!==e?b[e].revisions&&b[e].revisions.length>0?(c(b[e].revisions[0].timestamp),console.timeEnd("获得页面基础信息时间耗时")):(d(new Error("Fail to get the timestamp of this page.")),console.timeEnd("获得页面基础信息时间耗时")):void 0!==b[-1].missing?(console.info("页面未建立。"),c(void 0),console.timeEnd("获得页面基础信息时间耗时")):(d(new Error("Can't get timestamps of special pages.")),console.timeEnd("获得页面基础信息时间耗时"))}else d(new Error("Return result is invaild.")),console.timeEnd("获得页面基础信息时间耗时")},error:function(a){d(new Error("Fail to get the timestamp of this page.")),console.timeEnd("获得页面基础信息时间耗时")}})})}},{key:"edit",value:function(){var a=this,b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return new Promise(function(c,d){$.ajax({type:"POST",dataType:"json",url:a.getAPIURL(),data:$.extend({action:"edit",format:"json"},b),success:function(a){if(a&&a.edit)a.edit.result&&"Success"==a.edit.result?c(a.edit):a.edit.code?(j.error("hit_abusefilter"),d((0,h["default"])("hit_abusefilter")+":"+a.edit.info.replace("/Hit AbuseFilter: /ig","")+"<br><small>"+a.edit.warning+"</small>")):(j.error("unknown_edit_error"),d((0,h["default"])("unknown_edit_error")));else if(a&&a.error&&a.error.code){var b={protectedtitle:(0,h["default"])("protectedtitle"),cantcreate:(0,h["default"])("cantcreate"),spamdetected:(0,h["default"])("spamdetected"),contenttoobig:(0,h["default"])("contenttoobig"),noedit:(0,h["default"])("noedit"),pagedeleted:(0,h["default"])("pagedeleted"),editconflict:(0,h["default"])("editconflict"),badtoken:(0,h["default"])("badtoken"),notoken:(0,h["default"])("notoken"),invalidtitle:(0,h["default"])("invalidtitle"),summaryrequired:(0,h["default"])("summaryrequired"),customcssprotected:(0,h["default"])("customcssprotected"),customjsprotected:(0,h["default"])("customjsprotected"),cascadeprotected:(0,h["default"])("cascadeprotected"),blocked:(0,h["default"])("blocked"),ratelimited:(0,h["default"])("ratelimited")}[a.error.code]||(0,h["default"])("common_edit_error").replace(/\$1/gi,a.error.code);j.error(a.error.code),d(b)}else a.code?(j.error(a.code),d((0,h["default"])(a.code))):(j.error("unknown_edit_error"),d((0,h["default"])("unknown_edit_error")))},error:function(a){j.error("network_edit_error"),d((0,h["default"])("network_edit_error"))}})})}},{key:"redirectTo",value:function(a,b,c){return this.edit($.extend({title:window.mw.config.values.wgPageName,text:"#REDIRECT [["+a+"]]",token:b,summary:(0,h["default"])("Redirect [["+window.mw.config.values.wgPageName+"]] to [["+a+"]] via Wikiplus")},c))}},{key:"redirectFrom",value:function(a,b,c){return this.edit($.extend({title:a,text:"#REDIRECT [["+window.mw.config.values.wgPageName+"]]",token:b,summary:(0,h["default"])("Redirect [["+a+"]] to [["+window.mw.config.values.wgPageName+"]] via Wikiplus")},c))}},{key:"getWikiText",value:function(a){var b=arguments.length<=1||void 0===arguments[1]?"":arguments[1],c=arguments.length<=2||void 0===arguments[2]?"":arguments[2];return new Promise(function(d,e){$.ajax({url:location.protocol+"//"+location.host+window.mw.config.values.wgScriptPath+"/index.php",type:"GET",dataType:"text",cache:!1,data:{title:a,action:"raw",oldid:c,section:b},beforeSend:function(){console.time("获得页面文本耗时")},success:function(a){d(a),console.timeEnd("获得页面文本耗时")},error:function(a){404===a.status&&d((0,h["default"])("create_page_tip")),e(new Error("Fail to get the WikiText of this page."))}})})}},{key:"parseWikiText",value:function(){var a=this,b=arguments.length<=0||void 0===arguments[0]?"":arguments[0],c=arguments.length<=1||void 0===arguments[1]?this.getThisPageName():arguments[1];return new Promise(function(d,e){$.ajax({type:"POST",dataType:"json",data:{format:"json",action:"parse",text:b,title:c,pst:"true"},url:a.getAPIURL(),success:function(a){a&&a.parse&&a.parse.text?d(a.parse.text["*"]):e(new Error("Fail to parse WikiText."))},error:function(a){e(new Error("Fail to parse WikiText due to network reasons."))}})})}}]),a}()},{"./i18n":4,"./log":5,"./version":11}],3:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0}),c.Wikiplus=void 0;var f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),g=a("./i18n"),h=d(g),i=a("./version"),j=a("./util"),k=a("./ui"),l=a("./moduleManager"),m=a("./api"),n=a("./Wikipage"),o=a("./log"),p=(c.Wikiplus=function(){function a(b){e(this,a),this.UI=k.UI,this.Util=j.Util,this.Version=i.Version,this.notice=b,this.API=m.API,this.Wikipage=new n.Wikipage,this.coreConfig=new p(this.notice),this.Log=new o.Log,console.log("Wikiplus-3.0 v"+i.Version.VERSION),j.Util.scopeConfigInit(),j.Util.loadCss(i.Version.scriptURL+"/Wikiplus.css")}return f(a,[{key:"start",value:function(){this.checkInstall(),this.mmr=new l.ModuleManager,this.loadCoreFunctions()}},{key:"checkInstall",value:function(){var a=this,b=this,c=this.coreConfig.isInstall;if("True"===c){var d=new g.I18n(this.coreConfig.language);d.initI18n(),this.coreConfig.Version!==i.Version.VERSION&&(this.notice.create.success("Wikiplus-3.0 v"+i.Version.VERSION),this.notice.create.success(i.Version.releaseNote),this.coreConfig.Version=i.Version.VERSION,d.load())}else!function(){var c=new g.I18n(window.navigator.language.toLowerCase(),(!1));c.initI18n();var d=function(){b.coreConfig.isInstall="True",b.coreConfig.Version=i.Version.VERSION,b.coreConfig.StartUseAt=""+(new Date).valueOf(),b.coreConfig.StartEditCount=mw.config.values.wgUserEditCount,b.coreConfig.language=window.navigator.language.toLowerCase(),b.notice.create.success((0,h["default"])("Wikiplus installed, enjoy it"))};a.coreConfig.loadConfigHelper().then(function(b){delete b.updatetime,a.coreConfig.saveConfigToLocal(b),d()})["catch"](function(b){k.UI.createDialog({title:(0,h["default"])("Install Wikiplus"),info:(0,h["default"])("Do you allow WikiPlus to collect insensitive data to help us develop WikiPlus and improve suggestion to this site: $1 ?").seti18n(mw.config.values.wgSiteName),mode:[{id:"Yes",text:(0,h["default"])("Yes"),res:!0},{id:"No",text:(0,h["default"])("No"),res:!1}]}).then(function(b){console.log("用户选择:"+(b?"接受":"拒绝")),a.coreConfig.SendStatistics=b?"True":"False",d()})})}()}},{key:"initQuickEdit",value:function(){return mw.config.values.wgIsArticle&&"view"===mw.config.values.wgAction&&mw.config.values.wgIsProbablyEditable?void this.generateQuickEditButtons():(console.log("该页面无法编辑 快速编辑界面加载终止"),!1)}},{key:"generateQuickEditButtons",value:function(){var a=this,b=$("<li>").attr("id","Wikiplus-Edit-TopBtn").append($("<span>").append($("<a>").attr("href","javascript:void(0)").text(""+(0,h["default"])("QuickEdit")))).data({sectionNumber:"page",target:this.API.getThisPageName(),revision:window.mw.config.values.wgRevisionId}).addClass("Wikiplus-QuickEdit-Entrance");if($("#ca-edit").length>0&&0==$("#Wikiplus-Edit-TopBtn").length&&$("#ca-edit").before(b),$(".mw-editsection").length>0){var c=$("<span>").append($("<span>").attr("id","mw-editsection-bracket").text("[")).append($("<a>").addClass("Wikiplus-Edit-SectionBtn").attr("href","javascript:void(0)").text((0,h["default"])("QuickEdit"))).append($("<span>").attr("id","mw-editsection-bracket").text("]"));$(".mw-editsection").each(function(b){try{var d=$(this).find("a").last().attr("href"),e=d.match(/&[ve]*section\=([^&]+)/)[1].replace(/T-/gi,""),f=decodeURI(d.match(/title=(.+?)&/)[1]),g=$(this).prev().clone();g.find(".mw-headline-number").remove();var h=$.trim(g.text()),i=c.clone();i.find(".Wikiplus-Edit-SectionBtn").data({sectionNumber:e,sectionName:h,target:f,revision:window.mw.config.values.wgRevisionId}).addClass("Wikiplus-QuickEdit-Entrance"),$(this).append(i)}catch(j){a.Log.error("fail_to_init_quickedit")}})}this.bindQuickEditEvents()}},{key:"bindQuickEditEvents",value:function(){var a=this;$(".Wikiplus-QuickEdit-Entrance").click(function(){var b=$(this).data(),c=a.Wikipage;b.target!==a.API.getThisPageName()&&(c=new n.Wikipage(b.target)),a.notice.create.success((0,h["default"])("loading")),c.getWikiText(b.sectionNumber,b.revision).then(function(d){a.notice.empty();var e={content:d,page:c,sectionName:b.sectionName,sectionNumber:b.sectionNumber};b.revision!==window.mw.config.values.wgCurRevisionId&&(e.title=(0,h["default"])("QuickEdit")+" // "+(0,h["default"])("history_edit_warning")),b.sectionName&&(e.summary="/* "+b.sectionName+" */ "+(0,h["default"])("default_summary")),a.generateQuickEditUI(e)})["catch"](function(){a.notice.error((0,h["default"])("load_wikitext_failed"))})})}},{key:"generateQuickEditUI",value:function(){var a=this,b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],c=b.title||(0,h["default"])("QuickEdit"),d=b.summary||(0,h["default"])("default_summary"),e=b.content||"",f=$("<span>").attr("id","Wikiplus-Quickedit-Back").addClass("Wikiplus-Btn").text(""+(0,h["default"])("back")),g=$("<span>").attr("id","Wikiplus-Quickedit-Jump").addClass("Wikiplus-Btn").append($("<a>").attr("href","#Wikiplus-Quickedit").text(""+(0,h["default"])("goto_editbox"))),i=$("<textarea>").attr("id","Wikiplus-Quickedit").val(e),j=$("<div>").attr("id","Wikiplus-Quickedit-Preview-Output"),k=$("<input>").attr("id","Wikiplus-Quickedit-Summary-Input").attr("placeholder",""+(0,h["default"])("summary_placeholder")).val(d),l=$("<button>").attr("id","Wikiplus-Quickedit-Submit").text((0,h["default"])("submit")+"(Ctrl+S)"),m=$("<button>").attr("id","Wikiplus-Quickedit-Preview-Submit").text(""+(0,h["default"])("preview")),n=$("<div>").append($("<input>").attr({type:"checkbox",id:"Wikiplus-Quickedit-MinorEdit"})).append($("<label>").attr("for","Wikiplus-Quickedit-MinorEdit").text((0,h["default"])("mark_minoredit")+"(Ctrl+Shift+S)")).css({margin:"5px 5px 5px -3px",display:"inline"}),o=$("<div>").append(f,g,j,i,k,$("<br>"),n,l,m);this.UI.createBox({title:c,content:o,width:1e3,callback:function(){var c=$(document).scrollTop(),d=$("#Wikiplus-Quickedit-Preview-Output"),e=a;$("#Wikiplus-Quickedit-Back").click(function(){$(".Wikiplus-InterBox-Close").click()});var f=$("<div>").addClass("Wikiplus-Banner").text(""+(0,h["default"])("loading_preview"));$("#Wikiplus-Quickedit-Preview-Submit").click(function(){var a=$("#Wikiplus-Quickedit").val();$(this).attr("disabled","disabled"),d.fadeOut(100,function(){d.html("").append(f).fadeIn(100)}),$("body").animate({scrollTop:c},200),e.Wikipage.parseWikiText(a).then(function(a){d.fadeOut(100,function(){d.html('<hr><div class="mw-body-content">'+a+"</div>").fadeIn(100),$("#Wikiplus-Quickedit-Preview-Submit").removeAttr("disabled")})})}),$("#Wikiplus-Quickedit-Submit").click(function(){var a=$("#Wikiplus-Quickedit").val(),e=$("#Wikiplus-Quickedit-Summary-Input").val(),f=((new Date).valueOf(),$("<div>").addClass("Wikiplus-Banner").text(""+(0,h["default"])("submitting_edit"))),g={summary:e};"page"!==b.sectionNumber&&(g.section=b.sectionNumber),$("#Wikiplus-Quickedit-MinorEdit").is(":checked")&&(g.minor="true"),$("#Wikiplus-Quickedit-Submit,#Wikiplus-Quickedit,#Wikiplus-Quickedit-Preview-Submit").attr("disabled","disabled"),$("body").animate({scrollTop:c},200),$("#Wikiplus-Quickedit").keydown(function(){window.onclose=window.onbeforeunload=function(){return""+(0,h["default"])("onclose_confirm")}}),d.fadeOut(100,function(){d.html("").append(f).fadeIn(100)}),b.page.setContent(a,g).then(function(){d.fadeOut(100,function(){d.find(".Wikiplus-Banner").css("background","rgba(6, 239, 92, 0.44)"),d.find(".Wikiplus-Banner").html((0,h["default"])("Edit submitted")),d.fadeIn(100)}),window.onclose=window.onbeforeunload=void 0,setTimeout(function(){location.reload()},500)})["catch"](function(a){d.fadeOut(100,function(){d.find(".Wikiplus-Banner").css("background","rgba(218, 142, 167, 0.65)"),d.find(".Wikiplus-Banner").html(a),d.fadeIn(100)}),$("#Wikiplus-Quickedit-Submit,#Wikiplus-Quickedit,#Wikiplus-Quickedit-Preview-Submit").removeAttr("disabled")})})}})}},{key:"loadCoreFunctions",value:function(){this.coreConfig.init(),this.initQuickEdit()}}]),a}(),function(){function a(b){e(this,a),this.notice=b}return f(a,[{key:"init",value:function(){var a=this;k.UI.addLinkInToolbox({name:(0,h["default"])("Wikiplus Config"),title:(0,h["default"])("Configurations for global Wikiplus."),callback:function(){a.drawConfigBox()}})}},{key:"drawConfigBox",value:function(){var a=this,b=$('<div id="wikiplus-config-area"><p>'+(0,h["default"])("You could change Wikiplus settings here. These settings will work on the whole Wiki.")+"</p><br></div>"),c=$('<input type="text" id="wikiplus-config-it-language">').val(j.Util.getLocalConfig("language"));b.append($("<p><b>"+(0,h["default"])("Language")+"</b>: </p>").append(c));var d=$('<label><input type="radio" id="wikiplus-config-ir-stat" value="true" name="wikiplus-config-stat">'+(0,h["default"])("Allow")+"</label>"),e=$('<label><input name="wikiplus-config-stat" value="false" type="radio" id="wikiplus-config-ir-nostat">'+(0,h["default"])("Disallow")+"</label>");"True"==j.Util.getLocalConfig("SendStatistics")?(d.find("input")[0].checked=!0,e.find("input")[0].checked=!1):(d.find("input")[0].checked=!1,e.find("input")[0].checked=!0),b.append($("<p><b>"+(0,h["default"])("Send Statistics")+"</b>: </p>").append(d).append(e));var f=j.Util.getLocalConfig("modules",!0);void 0===f&&(f=[]);var g=$('<textarea id="wikiplus-config-it-modules"></textarea>').val(f.join(", "));b.append($("<p><b>"+(0,h["default"])("Loaded Modules")+"</b>:<br>"+(0,h["default"])("Type comma-separated module names here.")+"</p>").append(g));var i=$('<input type="button" id="wikiplus-config-btn-loadconfig" value="'+(0,h["default"])("Load Config")+'">');i.click(function(){a.notice.create.success((0,h["default"])("Checking if had configuration on this wiki.")),a.loadConfig()}),b.append($("<hr>")).append($("<p><b>"+(0,h["default"])("Load Config from server")+"</b>: </p>").append(i)),b.append($("<hr><p>"+(0,h["default"])("Your configuration will save at User:$1/Wikiplus-config.json on this wiki.").seti18n(m.API.getUsername())+"</p>"));var l=$('<input type="button" id="wikiplus-config-btn-save" class="Wikiplus-InterBox-Btn" value="'+(0,h["default"])("Save")+'">'),n=$('<input type="button" id="wikiplus-config-btn-cancel" class="Wikiplus-InterBox-Btn" value="'+(0,h["default"])("Cancel")+'">');n.click(function(){k.UI.closeBox()}),l.click(function(){var b={};b.language=c.val(),b.SendStatistics=d.find("input")[0].checked?"True":"False",b.modules=g.val().split(",").map(function(a){return $.trim(a)}),a.saveConfig(b)}),b.append(n).append(l),k.UI.createBox({title:(0,h["default"])("Wikiplus Config"),content:b})}},{key:"saveConfig",value:function(a){var b=this;this.saveConfigToLocal(a),a.updatetime=(new Date).getTime();var c=JSON.stringify(a),d=new n.Wikipage("User:"+m.API.getUsername()+"/Wikiplus-config.json");d.setContent(c,{summary:"Update Config via Wikiplus"}).then(function(a){b.notice.create.success((0,h["default"])("Save config to Server successfully.")),k.UI.closeBox()})["catch"](function(a){b.notice.create.error((0,h["default"])("Save config to Server failed."))})}},{key:"saveConfigToLocal",value:function(b){for(var c in b)a.objectiveConfig[c]?j.Util.setLocalConfig(c,b[c],!0):j.Util.setLocalConfig(c,b[c],!1);this.notice.create.success((0,h["default"])("Save config to local successfully."))}},{key:"loadConfig",value:function(){var a=this;this.loadConfigHelper().then(function(b){k.UI.createDialog({info:(0,h["default"])("Find a uploaded configuration of $1. Do you want to import this config now?").seti18n(new Date(b.updatetime).toLocaleString()),title:(0,h["default"])("Confirm Import"),mode:[{id:"Yes",text:(0,h["default"])("Yes"),res:!0},{id:"No",text:(0,h["default"])("No"),res:!1}]}).then(function(c){c&&(delete b.updatetime,a.saveConfigToLocal(b)),k.UI.closeBox()})})["catch"](function(b){var c="";switch(b){case"invalid":case"cannotparse":c=(0,h["default"])("Saved configuration on server is invalid.");break;case"empty":c=(0,h["default"])("Can not find any configuration for you on this wiki.")}a.notice.create.error(c)})}},{key:"loadConfigHelper",value:function(){return new Promise(function(a,b){var c=new n.Wikipage("User:"+m.API.getUsername()+"/Wikiplus-config.json");c.getWikiText().then(function(c){if(c)try{var d=JSON.parse(c);d.updatetime?a(d):b("invalid")}catch(e){b("cannotparse")}else b("empty")})["catch"](function(a){b("empty")})})}},{key:"isInstall",get:function(){return j.Util.getLocalConfig("isInstall")},set:function(a){j.Util.setLocalConfig("isInstall",a)}},{key:"Version",get:function(){return j.Util.getLocalConfig("Version")},set:function(a){j.Util.setLocalConfig("Version",a)}},{key:"language",get:function(){return j.Util.getLocalConfig("language")},set:function(a){j.Util.setLocalConfig("language",a)}},{key:"StartUseAt",get:function(){return j.Util.getLocalConfig("StartUseAt")},set:function(a){j.Util.setLocalConfig("StartUseAt",a)}},{key:"StartEditCount",get:function(){return j.Util.getLocalConfig("StartEditCount")},set:function(a){j.Util.setLocalConfig("StartEditCount",a)}},{key:"SendStatistics",get:function(){return j.Util.getLocalConfig("SendStatistics")},set:function(a){j.Util.setLocalConfig("SendStatistics",a)}},{key:"modules",get:function(){return j.Util.getLocalConfig("modules",!0)},set:function(a){j.Util.setLocalConfig("modules",a,!0)}}]),a}());p.objectiveConfig={modules:!0}},{"./Wikipage":1,"./api":2,"./i18n":4,"./log":5,"./moduleManager":7,"./ui":9,"./util":10,"./version":11}],4:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(){var a=arguments.length<=0||void 0===arguments[0]?"":arguments[0],b=arguments.length<=1||void 0===arguments[1]?"default":arguments[1],c=window.Wikiplus.__i18nCache;if(void 0===c)return a;var d=b+"Scope",e=c[d];return void 0===e?(console.warn("i18n: 未知的Scope"),a):void 0===e[a]?(console.debug("i18n: 找不到对应翻译",a,"@"+b+"Scope"),a):e[a]}Object.defineProperty(c,"__esModule",{value:!0}),c.I18n=void 0;var f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}();c["default"]=e;var g=a("./util"),h=a("./version");c.I18n=function(){function a(b){var c=arguments.length<=1||void 0===arguments[1]||arguments[1];d(this,a),this.lang=b,this.async=c}return f(a,[{key:"initI18n",value:function(){var a=g.Util.getLocalConfig("i18nCache",!0);void 0===a?this.load():a.language!=this.lang?this.load():window.Wikiplus.__i18nCache=a}},{key:"load",value:function(){var a=this,b={url:h.Version.scriptURL+"/backend/lang",type:"GET",data:{lang:this.lang},dataType:"json",success:function(b){b.language==a.lang?(g.Util.setLocalConfig("i18nCache",b,!0),a.initI18n()):console.warn("i18n: 似乎是载入了错误的语言文件。")},error:function(){console.warn("i18n: 找不到此语言对应的语言文件,")}};this.async||(b.async=!1),$.ajax(b)}}]),a}()},{"./util":10,"./version":11}],5:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0}),c.Log=void 0;var f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),g=a("./i18n"),h=d(g);c.Log=function(){function a(){e(this,a)}return f(a,[{key:"error",value:function(a){var b=new Error;return b.message=(0,h["default"])(a)||a,this.log("错误["+a+"]:"+b.message,"red"),this.log("Error Trace:","red"),console.log(b),b}},{key:"log",value:function(a){var b=arguments.length<=1||void 0===arguments[1]?"black":arguments[1];console.log("%c[Wikiplus]"+a,"color:"+b)}}]),a}()},{"./i18n":4}],6:[function(a,b,c){"use strict";var d=a("./core"),e=a("./moenotice");$(function(){var a=new e.MoeNotification,b=window.Wikiplus=new d.Wikiplus(a);console.log("Wikiplus 开始加载"),b.start()})},{"./core":3,"./moenotice":8}],7:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0}),c.ModuleManager=void 0;var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=a("./version"),g=a("./util");c.ModuleManager=function(){function a(){d(this,a),this.modulesConfig=g.Util.getLocalConfig("modules",!0),void 0==this.modulesConfig&&(this.modulesConfig=[]),this.modules={};var b=!0,c=!1,e=void 0;try{for(var f,h=this.modulesConfig[Symbol.iterator]();!(b=(f=h.next()).done);b=!0){var i=f.value;this.loadModule(i)}}catch(j){c=!0,e=j}finally{try{!b&&h["return"]&&h["return"]()}finally{if(c)throw e}}}return e(a,[{key:"loadModule",value:function(a){var b="_wikiplus_mmr_cb"+(new Date).getTime(),c=this;window[b]=function(d){c.loadModuleHelper(d,a,c),delete window[b]};var d=f.Version.scriptURL+"/backend/getmodule?name="+a+"&callback="+b;g.Util.loadJs(d)}},{key:"loadModuleHelper",value:function(a,b,c){var d=c.modules;if(void 0==a.manifest)console.error("无法解析模块 "+b);else if(a.manifest.name==b){console.log("加载 "+a.manifest.name+" 版本 "+a.manifest.version+" 成功。"),d[b]=a;var e=!0,f=!1,g=void 0;try{for(var h,i=a.manifest.dependencies[Symbol.iterator]();!(e=(h=i.next()).done);e=!0){var j=h.value;c.modulesConfig.indexOf(j)==-1&&(c.modulesConfig.push(j),console.log("准备加载"+b+"的额外依赖: "+j),c.loadModule(j))}}catch(k){f=!0,g=k}finally{try{!e&&i["return"]&&i["return"]()}finally{if(f)throw g}}this.modulesInit()}else console.error("载入模块失败:"+b)}},{key:"modulesInit",value:function(){for(var a in this.modules){var b=this.modules[a];if("loaded"!=b.__wikiplus_mmr_init_status&&"skipped"!=b.__wikiplus_mmr_init_status){console.log("初始化模块: "+a);var c=!0,d={},e=!0,f=!1,g=void 0;try{for(var h,i=b.manifest.dependencies[Symbol.iterator]();!(e=(h=i.next()).done);e=!0){var j=h.value;if(void 0==this.modules[j]){c=!1;break}d[j]=this.modules[j]}}catch(k){f=!0,g=k}finally{try{!e&&i["return"]&&i["return"]()}finally{if(f)throw g}}c?b.init(b,d)?(console.log("模块"+a+"初始化成功。"),b.__wikiplus_mmr_init_status="loaded"):(console.log("模块"+a+"认为它自己不应该被初始化。"),b.__wikiplus_mmr_init_status="skipped"):console.log("模块"+a+"依赖不满足,等待下次再初始化。")}}}}]),a}()},{"./util":10,"./version":11}],8:[function(a,b,c){"use strict";function d(){var a=this;this.display=function(){var b=arguments.length<=0||void 0===arguments[0]?"喵":arguments[0],c=arguments.length<=1||void 0===arguments[1]?"success":arguments[1],d=arguments.length<=2||void 0===arguments[2]?function(){}:arguments[2];$("#MoeNotification").append($("<div>").addClass("MoeNotification-notice").addClass("MoeNotification-notice-"+c).append($("<span>").text(b)).fadeIn(300)),a.bind(),a.clear(),d($("#MoeNotification").find(".MoeNotification-notice").last())},this.create={success:function(b){var c=arguments.length<=1||void 0===arguments[1]?function(){}:arguments[1];a.display(b,"success",c)},warning:function(b){var c=arguments.length<=1||void 0===arguments[1]?function(){}:arguments[1];a.display(b,"warning",c)},error:function(b){var c=arguments.length<=1||void 0===arguments[1]?function(){}:arguments[1];a.display(b,"error",c)}},this.clear=function(){return $(".MoeNotification-notice").length>=10&&($("#MoeNotification").children().first().fadeOut(150,function(){$(this).remove()}),void setTimeout(a.clear,300))},this.empty=function(a){$(".MoeNotification-notice").each(function(b){if($.isFunction(a)){var c=this;setTimeout(function(){a($(c))},200*b)}else $(this).delay(200*b).fadeOut("fast",function(){$(this).remove()})})},this.bind=function(){$(".MoeNotification-notice").mouseover(function(){a.slideLeft($(this))})},window.slideLeft=this.slideLeft=function(a,b){a.css("position","relative"),a.animate({left:"-200%"},b||150,function(){$(this).fadeOut("fast",function(){$(this).remove()})})},this.init=function(){$("body").append($("<div>").attr("id","MoeNotification"))},$("#MoeNotification").length>0||this.init()}Object.defineProperty(c,"__esModule",{value:!0}),c.MoeNotification=d},{}],9:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0}),c.UI=void 0;var f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),g=a("./i18n"),h=d(g);c.UI=function(){function a(){e(this,a)}return f(a,null,[{key:"addLinkInToolbox",value:function(a){if(void 0==a)throw Error("need options for parameter.");var b=a.name||(0,h["default"])("Blank link"),c=a.link||"javascript:;",d=a.title||b,e=a.id||"t-wikiplus-tblink"+(new Date).getTime(),f=a.callback||new Function,g=$("<li>").attr({id:e}).append($("<a>").attr({href:c,title:d}).html(b));$("#p-tb>div>ul").append(g),g.on("click",function(a){f(a)})}},{key:"createDialog",value:function(b){var c=b.info||"",d=b.title||(0,h["default"])("Wikiplus"),e=b.mode||[{id:"Yes",text:(0,h["default"])("Yes"),res:!0},{id:"No",text:(0,h["default"])("No"),res:!1}];return new Promise(function(b,f){var g=$("<div>").text(c).attr("id","Wikiplus-InterBox-Content"),h=$("<div>").append(g).append($("<hr>")),i=!0,j=!1,k=void 0;try{for(var l,m=e[Symbol.iterator]();!(i=(l=m.next()).done);i=!0){var n=l.value,o=$("<div>").addClass("Wikiplus-InterBox-Btn").attr("id","Wikiplus-InterBox-Btn"+n.id).text(n.text).data("value",n.res);h.append(o)}}catch(p){j=!0,k=p}finally{try{!i&&m["return"]&&m["return"]()}finally{if(j)throw k}}a.createBox({title:d,content:h,callback:function(){var c=!0,d=!1,f=void 0;try{for(var g,h=function(){var c=g.value;$("#Wikiplus-InterBox-Btn"+c.id).click(function(){var d=$("#Wikiplus-InterBox-Btn"+c.id).data("value");a.closeBox(),b(d)})},i=e[Symbol.iterator]();!(c=(g=i.next()).done);c=!0)h()}catch(j){d=!0,f=j}finally{try{!c&&i["return"]&&i["return"]()}finally{if(d)throw f}}}})})}},{key:"closeBox",value:function(){$(".Wikiplus-InterBox").fadeOut("fast",function(){$(this).remove()})}},{key:"createBox",value:function(a){var b=a.title||(0,h["default"])("Wikiplus"),c=a.content||"",d=a.width||600,e=a.callback||new Function;$(".Wikiplus-InterBox").length>0&&$(".Wikiplus-InterBox").each(function(){$(this).remove()});var f=document.body.clientWidth,g=document.body.clientHeight,i=$("<div>").addClass("Wikiplus-InterBox").css({"margin-left":f/2-d/2+"px",top:$(document).scrollTop()+.2*g,display:"none"}).append($("<div>").addClass("Wikiplus-InterBox-Header").html(b)).append($("<div>").addClass("Wikiplus-InterBox-Content").append(c)).append($("<span>").text("×").addClass("Wikiplus-InterBox-Close"));$("body").append(i),$(".Wikiplus-InterBox").width(d+"px"),$(".Wikiplus-InterBox-Close").click(function(){
$(this).parent().fadeOut("fast",function(){window.onclose=window.onbeforeunload=void 0,$(this).remove()})});var j=function k(a){a.mousedown(function(b){var c=b.clientX,d=b.clientY,e=a.parent().offset().left,f=a.parent().offset().top;$(document).mousemove(function(b){a.parent().css({"margin-left":e+b.clientX-c,top:f+b.clientY-d})}),$(document).mouseup(function(){a.unbind("mousedown"),$(document).unbind("mousemove"),$(document).unbind("mouseup"),k(a)})})};j($(".Wikiplus-InterBox-Header")),$(".Wikiplus-InterBox").fadeIn(500),e()}}]),a}()},{"./i18n":4}],10:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}();c.Util=function(){function a(){d(this,a)}return e(a,null,[{key:"loadCss",value:function(a){var b=document.createElement("link");$(b).attr({rel:"stylesheet",type:"text/css",href:a}),$("head").append(b)}},{key:"loadJs",value:function(a){var b=document.createElement("script");$(b).attr({type:"text/javascript",async:!1,src:a}),$("head").append(b)}},{key:"setLocalConfig",value:function(a){var b=arguments.length<=1||void 0===arguments[1]?"":arguments[1],c=!(arguments.length<=2||void 0===arguments[2])&&arguments[2];a="Wikiplus-"+a,c?localStorage[a]=JSON.stringify(b):localStorage[a]=b}},{key:"getLocalConfig",value:function(a){var b=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];try{return a="Wikiplus-"+a,b?JSON.parse(localStorage[a]):localStorage[a]}catch(c){return}}},{key:"scopeConfigInit",value:function(){String.prototype.seti18n=function(){for(var a=arguments.length,b=this,c=1;c<=a&&c<=9;c++)b=b.replace(new RegExp("\\$"+c,"g"),arguments[c-1]);return b}}}]),a}()},{}],11:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});var e=c.Version=function f(){d(this,f)};e.VERSION="1.0.3",e.releaseNote="i18n生成器的更新。",e.scriptURL="http://localhost/Wikiplus-3.0"},{}]},{},[6]);