User:小曹铁路1/common.js

此页由Linux Wiki用户小曹铁路1于2016年10月22日 (星期六) 15:18的最后更改。

出自Linux Wiki

注意:在保存以后,您必须清除浏览器的缓存才能看到所作出的改变。 Mozilla / Firefox / Safari:按住Shift再点击刷新,或按下Ctrl-F5Ctrl-R(在Macintosh上按下Command-R); Konqueror:只需点击刷新或按下F5Opera:在工具→首选项中完整清除它们的缓存,或按下Alt-F5Internet Explorer:按住Ctrl再点击刷新,或按下Ctrl-F5

/*小曹铁路自动维基广告器
XCRail(TM) MediaWiki Auto Spammer 2.6
Powered by XCRail 2016.10.22
支持所有MediaWiki站点
版权所有:2016 小曹铁路/小曹2015/萌萌哒的小曹大大 保留所有权利
编程语言:JavaScript
使用方法:放到阁下用户页的common.js中并点击“显示预览”(不要保存)
如果阁下使用Chrome浏览器,也可以按F12->Console,粘贴代码,回车即开始执行。
如果代码执行到获得token后没反应,请粘贴两次/重新执行一遍。
如果不会用,请加群221312284获得更新和技术支持。
更新日志请参阅代码最后*/
var time1 = new Date().getTime()//计时系统
var sitename = ""//接入点URL中的api.php位置,不含"/api.php"。
var lmd = 15//傀儡系统的灵敏度,默认15。建议不要小于10
var pgs = 2000//页面数量,建议与{{NUMBEROFPAGES}}相等,默认2000
var abusecross = false//是否使用通假字尝试绕过滥用过滤器,true为是,false为否
var vandalismingcode = "小曹铁路,世界上最好的铁路组织。快加入小曹铁路群。曹铁粉丝千千万。小曹铁路默秒全,小曹铁路平天下。小曹铁路好加群 221312284 。"//广告文字
var mode = 1//广告模式
/* 模式1:创建广告页面
模式2:随机页面插入广告内容*/
var delay = 1000//每次发广告的延迟时间(单位:毫秒*3),默认1100
var pagenameusestring = true//使用字符串作为创建广告页面的名字。在mode=1时有效。
var thread = 1//并发编辑数,视网速而定,越大速度越快。建议不大于3,默认1。
//var qurystring = '/api.php?action=query&format=json&prop=revisions&meta=siteinfo&continue=&titles=Main+Page&rvprop=user%7Ccomment%7Ccontent%7Cparsetree&rvexpandtemplates=1&rvparse=1&siprop=general'//跑分时用的测试页面地址
var qurystring = '/index.php?title=Special:随机页面'//跑分时用的测试页面地址
 
 
 
 
 
//请勿修改以下部分,除非阁下了解您在做什么
var aw12
var boo = confirm('是否对页面的最大编辑速度进行跑分?')
        if(boo){
			var runningtime1=new Date().getTime()
			$.post(sitename+qurystring,'', function (text, status) { aw12 = text; confirm2(text)}); 
        }
		else
		{
			runvandalism();
		}
function confirm2()
{
$.post(sitename+qurystring,'',function (text, status) { aw12 = text; confirm3(text, status)}); 	
}
function confirm3()
{
$.post(sitename+qurystring,'',function (text, status) { aw12 = text; confirm4(text, status)}); 	
}
function confirm4()
{
$.post(sitename+qurystring,'',function (text, status) { aw12 = text; confirm5(text, status)}); 	
}
function confirm5()
{
$.post(sitename+qurystring,'',function (text, status) { aw12 = text; confirm6(text, status)}); 	
}
function confirm6()
{
$.post(sitename+qurystring,'',function (text, status) { aw12 = text; confirm7(text, status)}); 	
}
function confirm7()
{
$.post(sitename+qurystring,'',function (text, status) { aw12 = text; confirm8(text, status)}); 	
}
function confirm8()
{
$.post(sitename+qurystring,'',function (text, status) { aw12 = text; confirm9(text, status)}); 	
}
function confirm9()
{
$.post(sitename+qurystring,'',function (text, status) { aw12 = text; confirm10(text, status)}); 	
}
function confirm10()
{
	var timeused = new Date().getTime()-runningtime1;
	var timeperedit = timeused / 10;
	var timeperminute = changeTwoDecimal(60000 / timeperedit);
	alert("平均每次编辑用时"+timeperedit+"ms\n平均一分钟最高可进行编辑"+timeperminute+'次');
	var tpe = Math.floor(timeperedit/10);
	if(timeperedit >= 7500)
	{
	var highestedittime = 1	
	}
	else if(timeperedit >= 5000)
	{
	var highestedittime = 2
	}
	else if(timeperedit >= 2500)
	{
	var highestedittime = 3	
	}
	else if(timeperedit >= 1000)
	{
	var highestedittime = 8
	}
	else if(timeperedit >= 800)
	{
	var highestedittime = 10
	}
	else if(timeperedit >= 600)
	{
	var highestedittime = 15
	}
	else if(timeperedit >= 500)
	{
	var highestedittime = 20
	}
	else
	{
	var highestedittime = 25
	}
	//确认推荐设置
	var boo = confirm('请检查我们的推荐设置:\n建议最高编辑延迟:'+tpe+'\n建议最高并发编辑数:'+highestedittime+'\n是否使用我们的推荐设置(会替代您在脚本中原有的设置。)'+'\n您原有的设置是:\n并发编辑数:'+thread+'\n编辑延迟:'+delay)
        if(boo){
			delay=tpe
			thread=highestedittime
	alert('设置成功');
	runvandalism();
        }
		else
		{
			runvandalism();
		}
}
//保留2位小数
function changeTwoDecimal(x)  
{  
var f_x = parseFloat(x);  
if (isNaN(f_x))  
{  
alert('function:changeTwoDecimal->parameter error');  
return false;  
}  
var f_x = Math.round(x*100)/100;  
 
return f_x;  
}
//绕过滥用过滤器、防和谐代码开始
var vandalisming = vandalismingcode
var firstedit = 0
 
var aw1
var times = 0
var token='+/'
function runvandalism()
{
	alert('我们的广告破坏即将开始!请检视您的设置:\n并发编辑数:'+thread+'\n编辑延迟'+delay);
vandalisming = vandalismingcode
firstedit = 0
refreshvandalism();
//检测404
var pic_url =sitename+"/api.php"
            $.ajax({  
                url:pic_url,  
                error:function(xhr, error, ex){  
                    if (xhr.status == '404') {  
                         print("<span style='color:red;'>失败:网络连接失败,请重试。如问题仍继续,请将sitename定位至网站的api.php位置。</span>");
						 throw("404 Error");
                    }  
                },  
                success:function(){  
                    pic_url = pic_url;  
                }  
            });  
 
//编辑部分
times = 0
token='+/'
gettoken();
}
function refreshvandalism()
{
vandalisming = vandalismingcode
print("正在生成广告文字->");
for(var i=0;i<10;i++){
	if (abusecross == true)
	{
vandalisming = hexieStr(vandalisming,["晓","暁","晓","xiǎo","小"],"小");
vandalisming = hexieStr(vandalisming,["曹","艹","草","cao","槽"],"曹");
vandalisming = hexieStr(vandalisming,["铁","鉄","鐵","鐡","tie"],"铁");
vandalisming = hexieStr(vandalisming,["露","录","足各","陆","鹿","路"],"路");
vandalisming = hexieStr(vandalisming,["2","二","贰","②","2"],"2");
vandalisming = hexieStr(vandalisming,["1","一","壹","①","幺","Ⅰ"],"1");
vandalisming = hexieStr(vandalisming,["三","3","叁","③","3"],"3");
vandalisming = hexieStr(vandalisming,["摸","墨","莫","默","mo","末","陌","膜","沫"],"默");
vandalisming = hexieStr(vandalisming,["天","填","添"],"天");
vandalisming = hexieStr(vandalisming,["平","坪","瓶","凭","评","萍","甁","屛","ping"],"平");
vandalisming = hexieStr(vandalisming,["全","权","拳","quan","權","権","泉","荃","铨","痊"],"全");
vandalisming = hexieStr(vandalisming,["裙","群","qun"],"群");
vandalisming = hexieStr(vandalisming,["粉","份","fen"],"粉");
vandalisming = hexieStr(vandalisming,["千","签","牵","倩","迁"],"千");
	}
}
print("生成的广告文字:"+vandalisming);
}
function hexieStr(str,replacing,replacer)
{
console.log(replacer);
console.log(replacing);
console.log(str);
var replacing2 = replacing[Math.floor(Math.random()*str.length)];
var rd = Math.floor(Math.random()*15)
console.log(rd);
if(replacing[rd] == undefined){
for(var i=0;i=-1;i++){
if(replacing[rd] != undefined){
break;
}
else{
	var rd = Math.floor(Math.random()*15)
     console.log(rd);
}
}
}
console.log(replacing[rd]);
replacing2 = replacing[rd]
console.log("1"+replacer);
console.log(replacing2);
str=str.replace(replacer,replacing2); 
return str
}
function gettoken() 
{
	try{
$.post(sitename+'/api.php?action=query&meta=tokens&format=json',"",function (text, status) { xcrailgettoken(text); });
	}
	 catch(e)
  {
	  print("<span style='color:red;'>失败:网络连接失败,请重试。如问题仍继续,请将sitename定位至网站的api.php位置。</span>");
  }
}
function xcrailgettoken(text) {
 var obj = eval(text);
 print("正在获取token代码->");
 try{
 print("已获取token代码:"+obj.query.tokens.csrftoken);
 }
 catch(e)
  {
	  print("<span style='color:red;'>失败:网络连接失败,请重试。如问题仍继续,请将sitename定位至网站的api.php位置。</span>");
  }
 var xcrail=obj.query.tokens.csrftoken
 	 for(var i=0;i<=thread;i++){
 var pid=Math.floor(Math.random()*pgs)
 if(mode == 2)
 {
 $.post(sitename+'/api.php?action=edit&format=json&pageid='+pid+'&text='+vandalisming,'token='+encodeURIComponent(xcrail), function (text, status) { aw1 = eval(text); });
 }
 else if(mode == 1)
 {
	 if(pagenameusestring == true)
	 {
	  $.post(sitename+'/api.php?action=edit&format=json&title='+randomString(16)+'&text='+vandalisming,'token='+encodeURIComponent(xcrail), function (text, status) { aw1 = eval(text); });
	 }
	 else
	 {
		$.post(sitename+'/api.php?action=edit&format=json&title='+pid+'&text='+vandalisming,'token='+encodeURIComponent(xcrail), function (text, status) { aw1 = eval(text); }); 
	 }
 }
 console.log(aw1);
 aw1 = eval(aw1);
	 }
 if(times >= lmd)
 {
	  print("<span style='color:red;'>失败:无法进行编辑操作,重试"+lmd+"次之后仍无法编辑。</span>");
	  throw("Can't edit");
 }
 try{
if(aw1.error.code = "nosuchpageid")
  {
	 print("编辑失败,正在重试。");
	 times++
	 gettoken();
  }
 }
 catch(e)
 {
	 if(firstedit == 0)
	 {
		 firstedit = 1
		 setTimeout("delay3();",delay);
	 }else{
	 print("成功在页面发广告:"+aw1.edit.title);
	 setTimeout("delay3();",delay);
	 }
      }
}
//print部分
var printedmessage
function print(message)
{
	if(printedmessage==undefined)
	{
		printedmessage = ""
	}
	printedmessage = printedmessage + message +"<br>"
	document.getElementById('bodyContent').innerHTML=printedmessage;
}
//延时部分
function delay3()
{
	gettime();
	print("成功发送广告->,距离下一次发送还有3秒。");
	setTimeout("delay2();",delay);
}
function delay2()
{
	print("成功发送广告->,距离下一次发送还有2秒。");
	setTimeout("delay1();",delay);
}
function delay1()
{
	print("成功发送广告->,距离下一次发送还有1秒。");
    refreshvandalism();
	setTimeout("gettoken();",delay);
}
//计时器
function gettime()
{
	var time3
	times = 0
	time2 = time1
	time3 = new Date().getTime()
	time1 = new Date().getTime()+delay*3
	print("本次散发广告用时"+(time3-time2)+"ms");
}
//随机字符串
function randomString(len) {  
  len = len || 32;  
  var $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';  
  var maxPos = $chars.length;  
  var pwd = '';  
  for (i = 0; i < len; i++) {  
        //0~32的整数  
    pwd += $chars.charAt(Math.floor(Math.random() * (maxPos+1)));  
  }  
  return pwd;  
}  
  /*<div style="background:#18C3F4;z-index:9999;color:#fff;opacity:.99;margin-top:-60px;">
<span style="font-family:'segoe ui semilight','segoe ui',sans-serif;font-size:110px;line-height:150px;margin-left:-7px;font-family:segoe ui,sans-serif">小!曹!铁!路!好!<br>快!加!曹!铁!群!</span>
<p style="font-size:25px;font-family:微软雅黑,Microsoft YaHei,Microsoft JhengHei,sans-serif">小.曹.铁.路.快.加.群,小.曹.铁.路平.天.下。<br>小.曹.铁.路.默.秒.全,快.加小.曹.铁.路群。22..1.3.1.22.84。</p>
<p style="margin-top:15px;font-size:13px;opacity:.8;text-shadow:0 0 2px rgba(255,255,255,.7);font-family:微软雅黑,Microsoft YaHei,Microsoft JhengHei,sans-serif">曹さん鉄.道,Bilibili最高注目数.の鉄道,100万ファンを持つ,.無料加.QQ..群、xi.aoca.o201.5のファンになる,今は硬貨を投げて。</p></div>.
<div style="outline:9999px solid #18C3F4;"></div>*/
/* 
更新日志:
1.0 初次发布
1.1 增加绕过滥用过滤器功能
1.2 自动和谐词库改进
1.3 增加傀儡检测
1.4 增加错误机制
1.5 增加print机制
1.6 增加账号被封禁的检测
1.7 增加在sitename设置错误时的404检测
1.8 增加重试机制
1.9 增加自定义重试次数
2.0 增加广告延时,每次3秒
2.1 增加散发广告时长计时功能
2.2 修复第一次运行时can't read 'edit' of undefined的bug
2.3 可以选择是否绕过滥用过滤器
2.4 大规模更新
2.5 加入并发编辑、随机字符串页面名字,编辑提速,最快1500次/分(delay=1 thread=15的情况下,根据网速而异)
2.6 增加跑分机制
*/
个人工具
简体繁体转换