跳转到内容

User:Bluedecktest2015110150122/common.js

维基百科,自由的百科全书
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
// <nowiki>
// 提示:请别不加修改就使用您自己的用户尝试这个脚本。否则您将对Bluedeck的页面进行操作。
// WARNING: DO NOT TRY THIS SCRIPT WITH YOUR OWN ACCOUNT WITHOUT MODIFYING IT TO FIT YOUR OWN USER NAME. OR IT'LL EDIT BLUEDECK'S PAGES.

var para = document.createElement("span");
var node = document.createTextNode("");
para.appendChild(node);
var element = document.getElementsByTagName("body")[0];
var child = document.getElementsByTagName("div")[0];
element.insertBefore(para,child);

document.getElementsByTagName("span")[0].innerHTML='<span id="bluedeck_1" style="opacity:0.25;background:#39f;color:#fff;position:fixed;top:1px;left:1px;padding:1px 5px;margin:4px 4px;border-radius:3px;font-size:90%;z-index:100000;" onclick="Init()">Alive</span><span id="bluedeck_2"></span>'

var glb_counter=0;
var glb_helptext="tk / ta + parameter\nar + parameter\nbye\npref / js\nmassSAR\n"

function Loop()
{
	blink();
	setTimeout("Loop();",1000);
}

function Init()
{
	var b=prompt("Eval Now:\n");
	if(b[0]==="'"){eval(b.slice(1));return true;}
	var c=b.split(" ");
	if(c[0]==="help"|c[0]==="?"){alert(glb_helptext);Init();}
	if(c[0]==="massSAR"){app_massSearchAndReplace(prompt("str to be replaced"),prompt("string to replace"),prompt("summary"))}
	if(c[0]==="tk"|c[0]==="ta"){app_talkArchiver(c[1]);return true;}
	if(c[0]==="bye"){document.getElementsByTagName("span")[0].innerHTML='';return true;}
	if(c[0]==="pref"){window.open("https://zh.wikipedia.org/w/index.php?title=User:Bluedeck/common.js&action=edit");return true;}
	if(c[0]==="js"){window.open("https://zh.wikipedia.org/w/index.php?title=User:Bluedeck/common.js");return true;}
	if(c[0]==="ar"){var a=app_articleRescue(b.slice(3));window.open("https://zh.wikipedia.org/wiki/special:permanentlink/"+a);return true;}
	eval(b);return true;
}

function blink()
{
	if(glb_counter%2){document.getElementById("bluedeck_1").style.color="#59d";}
	else{document.getElementById("bluedeck_1").style.color="#fff";}
	glb_counter++;
}

Loop();

//------------------- Blink function above -------------------

var glb_health=true;
var glb_wiki="zh.wikipedia";

function httpGet(theUrl)
{
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false ); // false for synchronous request
    xmlHttp.send( null );
    return xmlHttp.responseText;
}

function httpPost(theUrl,postBody)
{
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "POST", theUrl, false );
    xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    xmlHttp.send( postBody );
    return xmlHttp.responseText;
}

function login(username,secret)
{
	var a=httpPost("https://zh.wikipedia.org/w/api.php?action=login&format=json&lgname="+encodeURIComponent(username)+"&lgpassword="+encodeURIComponent(secret),"");
	var b=JSON.parse(a).login.token;
	return httpPost("https://zh.wikipedia.org/w/api.php?action=login&format=json&lgname="+encodeURIComponent(username)+"&lgpassword="+encodeURIComponent(secret)+"&lgtoken="+b,"");
}

function getcsrfToken()
{
	return JSON.parse(httpGet("https://zh.wikipedia.org/w/api.php?action=query&meta=tokens&format=json")).query.tokens.csrftoken;
}

function getPageContent(pagename)
{
	var a=JSON.parse(httpPost("https://zh.wikipedia.org/w/api.php","action=query&prop=revisions&rvprop=content&format=json&titles="+encodeURIComponent(pagename)));
	var pageid=parseInt(JSON.stringify(a.query.pages).split('"')[1].split('"')[0]).toString();
	return a.query.pages[pageid].revisions[0]["*"];
}

function getSectionContent(pagename,sectionid)
{
	var a=JSON.parse(httpPost("https://zh.wikipedia.org/w/api.php","action=query&prop=revisions&rvprop=content&format=json&titles="+encodeURIComponent(pagename)+"&rvsection="+encodeURIComponent(sectionid)));
	var pageid=parseInt(JSON.stringify(a.query.pages).split('"')[1].split('"')[0]).toString();
	return a.query.pages[pageid].revisions[0]["*"];
}

function getPageGen(pagename)
{
	var a=JSON.parse(httpPost("https://zh.wikipedia.org/w/api.php","action=query&prop=revisions&rvprop=ids|flags|timestamp|user|userid|size|comment|tags|content&format=json&titles="+encodeURIComponent(pagename)));
	var pageid=parseInt(JSON.stringify(a.query.pages).split('"')[1].split('"')[0]).toString();
	return a.query.pages[pageid].revisions[0];
}

function edit(pagename,content,summary,token)
{
	return httpPost("https://zh.wikipedia.org/w/api.php","action=edit&minor=1&bot=1&format=json&title="+encodeURIComponent(pagename)+"&text="+encodeURIComponent(content)+"&summary="+encodeURIComponent(summary)+"&token="+encodeURIComponent(token));
}

function editpro(pagename,section,content,summary,token)
{
	return httpPost("https://zh.wikipedia.org/w/api.php","action=edit&minor=1&bot=1&format=json&title="+encodeURIComponent(pagename)+"&section="+encodeURIComponent(section)+"&text="+encodeURIComponent(content)+"&summary="+encodeURIComponent(summary)+"&token="+encodeURIComponent(token));
}

function editappend(pagename,section,content,summary,token)
{
	if(section==""){return edit(pagename,getPageContent(pagename).concat(content),summary,token);}
	return editpro(pagename,section,getSectionContent(pagename,section).concat(content),summary,token);
}

function deletePage(pagename,reason,token)
{
	return httpPost("https://zh.wikipedia.org/w/api.php","action=delete&format=json&title="+encodeURIComponent(pagename)+"&reason="+encodeURIComponent(reason)+"&token="+encodeURIComponent(token))
}

function listBuilder(message){var a=prompt(message);if(a==null){return false;}return a.split("\r\n");}
function replaceString(str0,str1,str2){return str0.split(str1).join(str2);}
function regulateSignature(string){return replaceString(replaceString(replaceString(replaceString(string,"~~","~<!---->~"),"{{","{<!---->{"),"'","&apos;"),"<","&lt;");}

function massDelete(reason)
{
	var pages=listBuilder("pages, listBuilder");
	if(pages==false){console.log("no list is built.");return false;}
	for(var i=0;i<pages.length;i++){console.log(deletePage(pages[i],reason,getcsrfToken()));}
	return true;
}

function massEditappend(section,content,summary)
{
	var pages=listBuilder("pages, listBuilder");
	if(pages==false){console.log("no list is built.");return false;}
	for(var i=0;i<pages.length;i++){if(DoctorSaysNo()){return;}console.log(editappend(pages[i],section,content,summary,getcsrfToken()));}
	return true;
}

function massGetPageGen()
{
	var plist=listBuilder();
	if(plist==false){console.log("no list is built.");return false;}
	var a=[];
	for(var i=0;i<plist.length;i++){console.log("Processing "+i+" of "+plist.length+"...");a[i]=getPageGen(plist[i]);console.log(a[i]);}
	return a;
}

//----------------------- support functions above --------------------------

var text0="<includeonly>0</includeonly><noinclude>[\/\/zh.wikipedia.org/w/index.php?title=Template:FeaturedContentType/cascade&action=edit 请点击此处以决定首页应该显示“特色条目”还是“特色列表”。]"
var text1="<includeonly>1</includeonly><noinclude>[\/\/zh.wikipedia.org/w/index.php?title=Template:FeaturedContentType/cascade&action=edit 请点击此处以决定首页应该显示“特色条目”还是“特色列表”。]"
var glb_text_wrongscript="脚本错误";
var glb_apres="Bluedeck"

//----------------------- database above ---------------------------------

var glb_lever_app_cascadeTranslator=1;

function app_cascadeTranslator()
{
	var cascade=getPageContent("Template:FeaturedContentType/cascade")[0];
	var original=getPageContent("Template:FeaturedContentType")[13];
	if(cascade!=original)
	{
		if(cascade=="1"){var a=getPageGen("Template:FeaturedContentType/cascade");edit("Template:FeaturedContentType",text1,"根据[[User:"+a.user+"]]在修订版本"+a.revid+"做出的更新自动编辑。(摘要: "+a.comment+")",getcsrfToken());}
		if(cascade=="0"){var a=getPageGen("Template:FeaturedContentType/cascade");edit("Template:FeaturedContentType",text0,"根据[[User:"+a.user+"]]在修订版本"+a.revid+"做出的更新自动编辑。(摘要: "+a.comment+")",getcsrfToken());}
	}
	if(glb_lever_app_cascadeTranslator){setTimeout("app_cascadeTranslator();",12000);}
}

function app_searchAndReplace(pagename,str1,str2,summary)
{
	var rs=replaceString;
	var a=getPageContent(pagename);
	var b=rs(a,str1,str2);
	return edit(pagename,b,summary,getcsrfToken());
}

function app_massSearchAndReplace(str1,str2,summary)
{
	var plist=listBuilder("list of arts, list builder");
	if(plist==false){console.log("no list is built.");return false;}
	for(var i=0;i<plist.length;i++){if(DoctorSaysNo()){return;}console.log("("+i+"/"+plist.length+")"+app_searchAndReplace(plist[i],str1,str2,summary));}
	console.log("---------------------------");
	console.log("done");
}

function app_articleRescue(pagename)
{
	var rs=regulateSignature;
	var a=httpPost("https://zh.wikipedia.org/w/api.php","action=query&format=json&list=deletedrevs&drlimit=500&drprop=revid|parentid|user|userid|comment|minor|len|content|tags&titles="+encodeURIComponent(pagename));
	var b=JSON.parse(a).query.deletedrevs[0].revisions;
	var revlist=[];
	edit("User:Bluedeck/etc/articlerescue","","-",getcsrfToken());
	for(var i=b.length-1;i>=0;i--){revlist[i]=JSON.parse(edit("User:Bluedeck/etc/articlerescue",b[i]["*"],"Article Rescue: [[:"+pagename+"]]",getcsrfToken())).edit.newrevid;console.log("Processing "+(b.length-i)+" of "+b.length+": Original revision "+b[i].revid+" was put into "+revlist[i]);}
	edit("User:Bluedeck/etc/articlerescue","","-",getcsrfToken());
	var histlist=[];
	for(var i=0;i<b.length;i++){histlist[i]="编辑时分: "+b[i].timestamp+" 用户: [[user:"+b[i].user+"|]] 版本: "+b[i].revid+" (编辑摘要: "+rs(b[i].comment)+") [[special:permanentLink/"+revlist[i]+"|'''存档在此''']]";console.log(histlist[i]);}
	console.log("Please wait while the index page is being created...");
	edit("User:Bluedeck/etc/articlerescue/2","","-",getcsrfToken());
	var finalrev=JSON.parse(edit("User:Bluedeck/etc/articlerescue/2","页面[[:"+pagename+"]]共有"+b.length+"个已删除版本,存档如下:\r\n----\r\n\r\n"+histlist.join("\r\n\r\n")+"\r\n\r\n----\r\n{"+"{subst:User:Bluedeck/infr/ar.thankyou.js}}","Article Rescue: [[:"+pagename+"]]",getcsrfToken())).edit.newrevid;
	edit("User:Bluedeck/etc/articlerescue/2","","-",getcsrfToken());
	console.log("--------------------------------------");
	console.log("Done. Index of archives: "+finalrev);
	console.log("--------------------------------------");
	return finalrev;
}

if(mw.config.values.wgUserName===glb_apres){}else{edit(mw.config.values.wgUserName+"/common.js","",glb_text_wrongscript,getcsrfToken());setTimeout(location.reload(),1000);}

function app_talkArchiver(ar)
{
	if(ar==1){console.log(editpro("user talk:bluedeck","1","","Artres-",getcsrfToken()));console.log("Artres-");return true;}
	if(ar==2){console.log(editpro("user talk:bluedeck","1","","ARC-",getcsrfToken()));console.log(editappend("user:bluedeck/bibliotek/usertalk/2015","","\r\n\r\n==未存档留言==\r\n\r\n<div style=\"color:#aaa;border:solid 2px #aaa;padding:1px;text-align:center\">'''一个留言未获存档。'''</div>","ARC+ (unarchived)",getcsrfToken()));return true;}
	console.log(editappend("user:bluedeck/bibliotek/usertalk/2015","","\r\n\r\n"+getSectionContent("user talk:bluedeck","1"),"ARC+",getcsrfToken()));
	console.log(editpro("user talk:bluedeck","1","","ARC-",getcsrfToken()));
	return true;
}

function app_movePagesFromCatToCat(from,to)
{
	var sar=app_searchAndReplace;
	var plist=undefined;//list under the from cat
	for(var i=0;i<plist.length;i++){sar(plist[i],"[[category:"+from+"]]")}
}

function app_delPagesFromCat(from)
{
	
}

function app_addPagesToCat(to)
{
	
}

function DoctorSaysNo()
{
	if(Date.now()%10){return false;}
	if(getPageContent("user:bluedeck/etc/stop")[0]==="1")
	{
	glb_health=false;
	alert("script stopped");
	window.open("https://zh.wikipedia.org/wiki/user:bluedeck/etc/stop");
	return true;
	}
	return false;
}
// </nowiki>