User:Spaghet-Ti/javascript实验室/selftalkarchive.js

维基百科,自由的百科全书

注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。

/* 本程序抄自[[User:小躍/tools/selftalkarchive.js]],并供大家使用。 */
//start First function
mw.loader.using(['jquery.ui'], function() {
	var CountARworkid=0;
	function GetUrlParms(){

    var args=new Object();   

    var query=location.search.substring(1);//获取查询串   

    var pairs=query.split("&");//在逗号处断开   

    for(var   i=0;i<pairs.length;i++)   

    {   

        var pos=pairs[i].indexOf('=');//例如:查找name=value   

            if(pos==-1)   continue;//如果没有找到就跳过   

            var argname=pairs[i].substring(0,pos);//提取name   

            var value=pairs[i].substring(pos+1);//提取value   

            args[argname]=unescape(value);//存为属性   

    }

    return args;

}  
var args = new Object();
args = GetUrlParms();
if(args["section"]!=undefined)

{

//如果要查找参数key:

var GetSection = args["section"] ;
}
var SetSectionName=$('#wpSummary').val();
var SNCount=SetSectionName.length;
var GetSectionName=SetSectionName.substring(2,(SNCount-4));

function SelfTalkArchive( tracePage,destinationPage,edittext,editsummary ) {
	var api = new mw.Api();
	api.get( {
		'action' : 'query',
		'titles' : tracePage,
		'prop'   : 'revisions|info',
		'intoken' : 'edit',
		'rvprop' : 'content',
		'indexpageids' : 1
	} ).done( function (result) {
		result = result.query;
		var page = result.pages[result.pageids[0]];
	
		api.post( {
			'action' : 'edit',
			'title' : destinationPage,
			'appendtext' :edittext,
			'summary' :editsummary,
			'token' : page.edittoken
		} ).done( function () {
			
		} );
	} );
}
function SelfTalkAlreadyArchived( tracePage,destinationPage,EditSection,editsummary,linkTo ) {
	var api = new mw.Api();
	api.get( {
		'action' : 'query',
		'titles' : tracePage,
		'prop'   : 'revisions|info',
		'intoken' : 'edit',
		'rvprop' : 'content',
		'indexpageids' : 1
	} ).done( function (result) {
		result = result.query;
		var page = result.pages[result.pageids[0]];
	
		api.post( {
			'action' : 'edit',
			'title' : destinationPage,
			'text' :'',
			'section':EditSection,
			'summary' :editsummary,
			'token' : page.edittoken
		} ).done( function () {
				window.location.href = linkTo;
			
		} );
	} );
}

// secure server?

if(GetSection==null){}else if ((mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit') && mw.config.get('wgServer') == '//zh.wikipedia.org') {
    $('#wpDiff').after('\n<input id="wpSelfTalkArchiveButton" value="存檔" title="存檔此標題及標題相關的內容。" type="button"/>');
    $('#wpSelfTalkArchiveButton').click(SelfTalkArchiveEdit);
}

function SelfTalkArchiveEdit(event) {
	event.preventDefault();
	$('<div id="SelfTalkArchiveEdit" title="用戶討論頁存檔編輯器">' +
	 '<label for="SelfTalkArchiveEditSelect">選擇存檔的頁面:</label>'+
	 '<select id="SelfTalkArchiveEditSelect" style="padding:1px;vertical-align:baseline;">'+
	 '<option value=一般存檔>一般存檔'+
     '<option value=通知存檔>通知存檔'+
     '<option value=技術新聞存檔>技術新聞存檔'+
     '</select><br/>'+
     '<input id="wpSelfTalkArchiveEditSave" value="開始存檔" title="儲存您的選擇存檔頁面進行儲存工作。" type="button"/>'+
     '</div>'
     ).dialog({
        modal: false,
        autoOpen: true,
        close: function() {CountARworkid++;},
        width: 500
    });
     $('#wpSelfTalkArchiveEditSave').click(SelfTalkArchiveSave);
}
function SelfTalkArchiveSave(event) {
	event.preventDefault();
	if($('#SelfTalkArchiveEditSelect').val()=='通知存檔'){
	SelfTalkArchive(wgPageName,'User_talk:小躍/存檔/通知區','\n'+$('#wpTextbox1').val(),SetSectionName+'ARC+,使用[[User:小躍/tools/selftalkarchive.js|用戶討論頁存檔編輯器]]。' );
	SelfTalkAlreadyArchived(wgPageName,wgPageName,GetSection,SetSectionName+'ARC-,使用[[User:小躍/tools/selftalkarchive.js|用戶討論頁存檔編輯器]]。',mw.util.getUrl(wgPageName) );
	}else if($('#SelfTalkArchiveEditSelect').val()=='一般存檔'){
	SelfTalkArchive(wgPageName,'User_talk:小躍/存檔/9','\n'+$('#wpTextbox1').val(),SetSectionName+'ARC+,使用[[User:小躍/tools/selftalkarchive.js|用戶討論頁存檔編輯器]]。' );
	SelfTalkAlreadyArchived(wgPageName,wgPageName,GetSection,SetSectionName+'ARC-,使用[[User:小躍/tools/selftalkarchive.js|用戶討論頁存檔編輯器]]。',mw.util.getUrl(wgPageName) );
	}else if($('#SelfTalkArchiveEditSelect').val()=='技術新聞存檔'){
	SelfTalkArchive(wgPageName,'User_talk:小躍/News/2016','\n'+$('#wpTextbox1').val(),SetSectionName+'ARC+,使用[[User:小躍/tools/selftalkarchive.js|用戶討論頁存檔編輯器]]。' );
	SelfTalkAlreadyArchived(wgPageName,wgPageName,GetSection,SetSectionName+'ARC-,使用[[User:小躍/tools/selftalkarchive.js|用戶討論頁存檔編輯器]]。',mw.util.getUrl(wgPageName) );
	}
	$('<div id="SelfTalkArchiveSaveSaveDone" title="存檔完成">' +
      '<img src="http://upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif" /><label>正在存檔,請稍後......</label><br/>' +
      '</div>'
     ).dialog({
        modal: false,
        autoOpen: true,
        width: 500
    });
}

//end First function
});