// ==UserScript== // @name 自动任务 // @namespace http://tampermonkey.net/ // @version 0.8.3 // @description 自动完成marvelousga,dupedornot,gamecode等网站访问网页任务,自动验证所有任务 // @author HCLonely // @include *://www.grabfreegame.com/giveaway/* // @include *://gamecode.win/giveaway/* // @include *://whosgamingnow.net/giveaway/* // @include *://marvelousga.com* // @include *://dupedornot.com* // @include *://gamezito.com* // @include *://www.bananagiveaway.com/giveaway/* // @run-at document-end // @grant GM_addStyle // @downloadURL none // ==/UserScript== (function() { 'use strict'; //var autoRedeem=1;//1为自动激活;改为0则不自动激活//此功能已不可用 var autoOpen=1;//1为自动打开任务页面;改为0则不打开任务页面 if(/You need to be logged in to perform all tasks|Please login to see the tasks/gim.test(document.getElementsByTagName("body")[0].innerText)){ window.location.href="/login"; return 0; } var url=window.location.href; var bg=/bananagiveaway/gim.test(url)?"background-color:#71c61d;":""; var height=/grabfreegame/gim.test(url)?96:(/bananagiveaway/gim.test(url)?110:(/gamezito/gim.test(url)?125:(/gamecode/gim.test(url)?30:40))); var game=url.replace(/https?:\/\/(www)?(marvelousga|dupedornot|gamezito|gamecode).(com|win)\/giveaway\/|/,""); GM_addStyle(` #doTaskDiv{position:fixed;right:80px;top:${height}px;width:85px;z-index: 99999999999;} #info{max-height:352px;overflow-y:auto;padding:0 !important} #exInfo{position:fixed;right:50px;bottom:10px;max-width:600px;max-height:400px;z-index: 99999999999;display:none;background-color:#fff;padding:1.5rem} .infos{position:absolute;top:0px;left:0px;background-color:#757d81;border-radius: 3px !important;padding: 0px 2px !important;width:20px;height:20px} #shouqi{font-weight:900;color:#00e5ff} #doTask{width:145px;height:40px;${bg}} #Verify{width:145px;height:40px;${bg}} #fixed-banana{display:none !important} `); var div=document.createElement("div"); div.setAttribute("id", "doTaskDiv"); div.setAttribute("class", "card-content"); div.innerHTML=` `; var div3=document.createElement("div"); div3.setAttribute("id", "exInfo"); var div2=document.createElement("div"); div2.setAttribute("id", "info"); div2.setAttribute("class", "card-body card"); //div2.setAttribute("style", "position:fixed;right:50px;bottom:10px;max-width:600px;max-height:400px;overflow-y:auto;z-index: 99999999999;display:none"); div3.innerHTML=``; document.getElementsByTagName("body")[0].appendChild(div); div3.appendChild(div2); document.getElementsByTagName("body")[0].appendChild(div3); document.getElementById("shouqi").onclick=function(e){ e=document.getElementById("shouqi").className=="zhankai"?["20px","↖","展开","shouqi","none"]:["","↘","收起","zhankai","block"]; div3.style.width=e[0]; div3.style.height=e[0]; document.getElementById("shouqi").innerText=e[1]; document.getElementById("shouqi").setAttribute("title", e[2]); document.getElementById("shouqi").setAttribute("class", e[3]); div2.style.display=e[4]; } if(/https?:\/\/(marvelousga|dupedornot|gamezito).com.*/.test(url)){//marvelousga,dupedornot,gamezito领key var w=0; banNewBlock(); marvelousga(); //防止弹出新窗口 function banNewBlock(){ var d=new Date(); var cookiename = "haveVisited1"; //document.cookie = "haveVisited=1; path=/"; //document.cookie = "lastVisit=" + (d.getUTCMonth()+1) +"/"+ d.getUTCDate() + "/" + d.getUTCFullYear() + "; path=/"; document.cookie = cookiename + "=1; path=/"; document.cookie = cookiename + "=" + (d.getUTCMonth()+1) + "/" + d.getUTCDate() + "/" + d.getUTCFullYear() + "; path=/"; } //防止419 function token(){ var btn=document.getElementsByTagName("button"); for(var j=0;j${msg}!`; } e===w&&(getId()); }, error:function(jqXHR, textStatus, errorThrown){ p.innerHTML+=`${textStatus}:${jqXHR.status}-${errorThrown}`; e===w&&(getId()); } }); } //marvelousga,dupedornot,gamezito获取任务id function getId(task_id=[],api_id=[],btn_id=[],p_id=[]){ var btn=document.getElementsByTagName("button"); for(var i=0;i0&&api_id.length>0&&btn_id.length>0&&p_id.length>0){ verify(task_id,api_id,btn_id,p_id,0); }else if(task_id.length==0&&api_id.length==0&&btn_id.length==0&&p_id.length==0){ info("card-text monospace","color:green",`所有任务验证完成!`); getKey(); } } //marvelousga,dupedornot,gamezito验证任务 function verify(task_id,api_id,btn_id,p_id,e,v=0){ if(/visit[\w\W]*?webpage/gim.test(p_id[e])&&v==1){ e++; verify(e,v); return; }else if(/visit[\w\W]*?webpage/gim.test(p_id[e])&&v!=1){ v=1; } var p=info("card-text monospace","",`验证任务${task_id[e]}:${p_id[e]}...`); if(/Join[\w\W]*?in Steam/i.test(p_id[e].innerText)){ document.getElementById(btn_id[e]).removeAttribute("disabled"); document.getElementById(btn_id[e]).click(); } if(!/visit[\w\W]*?webpage/.test(p_id[e])||v!=1){ $.ajax({ type: "post", url: "/ajax/verifyTasks/"+api_id[e], datatype: "json", data:{ giveaway_slug: game, giveaway_task_id: task_id[e] }, crossDomain:true, xhrFields: { withCredentials: true }, success: function (data) { if(data.status==1){ document.getElementById(btn_id[e]).innerText="VERIFIED"; p.innerHTML+="OK!--"+data.percentageNanoBar+"%"; }else{ document.getElementById(btn_id[e]).innerText="ERROR!"; document.getElementById(btn_id[e]).style.color="red"; /gamezito/gim.test(url)?document.getElementById(btn_id[e]).parentNode.parentNode.getElementsByTagName("a")[0].click():document.getElementById(btn_id[e]).parentNode.getElementsByTagName("a")[0].click(); var msg=data.message||"ERROR"; p.innerHTML+=`${msg}!`; } e++; if(data.percentageNanoBar==100||e>=btn_id.length){ info("card-text monospace","color:green",`所有任务验证完成!`); getKey(); }else{ verify(task_id,api_id,btn_id,p_id,e,v); } }, error:function(jqXHR, textStatus, errorThrown){ document.getElementById(btn_id[e]).innerText="ERROR!"; document.getElementById(btn_id[e]).style.color="red"; jqXHR.status!=419&&(document.getElementById(btn_id[e]).parentNode.getElementsByTagName("a")[0].click()); p.innerHTML+=`${textStatus}:${jqXHR.status}-${errorThrown}`; e++; if(e谷歌验证获取key!`); document.getElementById("google").onclick=function(){ document.getElementById("get_key_container").getElementsByClassName("card-body")[0].style.backgroundColor="#00ffd9"; setTimeout(function(){document.getElementById("get_key_container").getElementsByClassName("card-body")[0].style.backgroundColor=""},500); }; document.getElementById("get_key_container").style.display="block"; document.getElementById("get_key_container").scrollIntoView(); document.getElementById("get_key_container").getElementsByClassName("card-body")[0].style.backgroundColor="#00ffd9"; setTimeout(function(){document.getElementById("get_key_container").getElementsByClassName("card-body")[0].style.backgroundColor=""},500); } //marvelousga,dupedornot,gamezito按钮定义 function marvelousga(){ document.getElementById("doTask").onclick=function(){ document.getElementById("exInfo").style.display="block"; w=0; var crsf=token(); if(crsf===1){ var a=document.getElementsByTagName("a"); var taskId,text,task; for(var i=0;i0&&e==="d"&&(doTask(0,verify_btn,do_btn)); verify_btn.length>0&&e==="v"&&(bananaVerify(0,verify_btn)); } //grabfreegame,bananagiveaway做任务 function doTask(e,verify_btn,do_btn){ var taskId=do_btn[e].match(/\?q\=[\d]+/)[0]; taskId=taskId.replace("?q=",""); var p=info("code","",`执行任务:${taskId}...`); $.ajax({ type: "get", url: do_btn[e], timeout:"10000", datatype: "json", crossDomain:true, xhrFields: { withCredentials: true }, complete: function (data) { p.innerHTML+="OK!"; e++; e0&&(bananaVerify(0,verify_btn))); } }); } //grabfreegame,bananagiveaway验证任务 function bananaVerify(e,verify_btn){ var taskId=verify_btn[e].match(/\?verify\=[\d]+/)[0]; taskId=taskId.replace("?verify=",""); var p=info("code","",`验证任务:${taskId}...`); $.ajax({ type: "get", url: verify_btn[e], timeout:"10000", datatype: "json", crossDomain:true, xhrFields: { withCredentials: true }, complete: function (data) { p.innerHTML+="OK!"; e++; eSteam key:<\/h3>

[\w\d]{5}(-[\w\W]{5}){2}<\/strong><\/p>/i.test(data)){ var key=data.match(/

Steam key:<\/h3>

[\w\d]{5}(-[\w\W]{5}){2}<\/strong><\/p>/i)[0]; key=key.replace(/(

Steam key:<\/h3>

)|(<\/strong><\/p>)/gi,""); data=data.replace(key,`${key}`); } document.write(data); }, error:function(jqXHR, textStatus, errorThrown){ alert(textStatus+":"+jqXHR.status+"-"+errorThrown); } }); } } //显示信息 function info(cText,sText,iText){ var p=document.createElement("p"); p.setAttribute("class", cText); p.setAttribute("style", sText); p.innerHTML=iText; div2.appendChild(p); p.scrollIntoView(); return p; } //button样式 function btn_class(e){ var task_btn=document.getElementsByClassName("auto-task"); for(var tb=0;tb