// ==UserScript== // @name 自动任务 // @namespace https://greasyfork.org/scripts/370650 // @version 1.5.3 // @description 自动完成并验证赠key网站任务 // @author HCLonely // @icon data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCAAgACADASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAABgQFBwP/xAAuEAACAQIFAgQEBwAAAAAAAAABAgMEEQAFEiExBkETUWFxFBUioTJCQ3KBsdH/xAAYAQADAQEAAAAAAAAAAAAAAAABAgMABP/EABsRAQADAAMBAAAAAAAAAAAAAAEAAgMRIkEx/9oADAMBAAIRAxEAPwDr008VPGZJpFRR3Y4GVfWclVMxpkaOmQ8rIpZh5mx29seXWUlRVV8cEV1KsRrJ2Qeg89ufXB0dPRkbamJFibnHLpp4S2eYnLEFF1nU/GM0ktoufBlUliOSR/ovhpl+YQZlSLU05JU7EHlT3B9cckqaGpoVD+I80K/lf6tH7T2Pth50RVLLTVMZkViziRADf6SAP7H3wc7q8M2tAOSVZ9kjTs1fSyKsqqS8cn4JPLfsR98ZvTUVfX0E3zaiFFNDUNGgTcSqOCL4VVc0UFMzzi8fB2vztjAzfOfgoaePLHWaonnWIRybBATY3255thr1PsGbZ6kiqMtM1LO4ppYpE/Tl0WYcE7E2Ft8U9J5RJlYeWfSjLqjVFfUCL3FvYHEcWZZnBnlQle0E8baPBpw41C97nUOOB/JwihpWcAxsEHPhcFPQ+fv3wlK+ymlU62Z//9k= // @include *://www.grabfreegame.com/giveaway/* // @exclude /.*?:\/\/www.grabfreegame.com\/giveaway\/.*?\/\?.*/ // @include *://www.bananagiveaway.com/giveaway/* // @exclude /.*?:\/\/www.bananagiveaway.com\/giveaway\/.*?\/\?.*/ // @include *://gamecode.win/giveaway/* // @include *://whosgamingnow.net/giveaway/* // @include *://marvelousga.com* // @include *://dupedornot.com* // @include *://gamezito.com* // @include /https?:\/\/gamehag.com\/.*?giveaway\/.*/ // @include *://giveawayhopper.com/giveaway/* // @include *://chubkeys.com/giveaway/* // @include *://giveaway.su/giveaway/view/* // @include *://gleam.io/* // @include *://gamehunt.net/distribution/* // @include *://www.indiedb.com/giveaways/* // @include *://www.spoune.com/* // @exclude *://www.spoune.com/werbung/* // @exclude /https?:\/\/www.spoune.com\/.*?verify\-api.*/ // @include *://prys.ga/giveaway/?id=* // @run-at document-end // @grant GM_addStyle // @grant GM_xmlhttpRequest // @grant GM_setClipboard // @grant GM_setValue // @grant GM_getValue // @grant GM_openInTab // @grant GM_log // @grant GM_registerMenuCommand // @grant GM_info // @require https://greasyfork.org/scripts/379868-jquery-not/code/jQuery%20not%20$.js?version=710109 // @resource bootstrapCSS https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css // @supportURL https://steamcn.com/t455167-1-1 // @supportURL https://github.com/HCLonely/AutoTask/issues // @connect instagram.com // @connect twitter.com // @connect facebook.com // @connect youtube.com // @connect steampowered.com // @connect steamcommunity.com // @connect accounts.google.com // @connect vk.com // @connect gamehag.com // @connect gamehunt.net // @connect discordapp.com // @downloadURL none // ==/UserScript== 'use strict'; try{ const SETTING={ version:GM_info.script.version, autoOpen:true,//true为自动打开任务页面;改为false则不打开任务页面 updateText:'1.恢复对gamehunt网站的支持!
2.gamehunt网站使用时需要先初始化!
3.gamehunt网站目前只支持自动加组,其他任务需手动,后续遇到其他类型的任务可能会更新!', }; let setting=GM_getValue("setting")||{}; let ats={}; let updateText; if(SETTING.version!=setting.version){ setting.version=SETTING.version; setting.updateText=SETTING.updateText; for(let i in SETTING){ ats[i]=setting[i]||SETTING[i]; } GM_setValue("setting",ats); } setting=GM_getValue("setting"); let autoOpen=setting['autoOpen']; let url=window.location.href; const joinAndFollow=`正在做加组、关注等任务(此功能需要Giveaway Helper脚本,没有则自动跳过此步骤),请稍候!` $css(` #info{max-height:210px;overflow-y:auto;padding:0 !important} #exInfo{position:fixed;right:50px;bottom:10px;max-width:600px;max-height:250px;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} #fixed-banana,cloudflare-app{display:none !important} .setting{width:145px;background:white;border:2px solid;border-radius:5px;} #doTaskDiv{position:fixed;right:20px;top:130px !important;width:145px;z-index: 99999999999;} .auto-task{width:145px !important;} .auto-task{cursor: pointer;display: inline-block;font-weight: 400;text-align: center;white-space: nowrap;vertical-align: middle;user-select: none;border: 1px solid transparent;padding: 0.375rem 0.75rem;font-size: 1rem;line-height: 1.5;transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;} .auto-task{-webkit-box-shadow: 0 5px 25px -3px #F03434;background: #F03434;color: white;border-radius: 4px !important;border-color: #29363d;margin: 0 !important;font: 400 13.3333px Arial;height:38px} .auto-task:hover{background: #ee1c1c;} .auto-task:focus{outline: 5px auto -webkit-focus-ring-color;} `); let div=$ele({ele:"div","id":"doTaskDiv","class":"card-content",parent:$tag("body")[0]}); let doTaskBtn=$ele({ele:"button","id":"doTask","class":"auto-task btn btn-default",title:"一键做任务+验证",parent:div,text:"FuckTask"}); let verifyBtn=$ele({ele:"button","id":"verify","class":"auto-task btn btn-default",title:"一键验证",parent:div,text:"Verify"}); let removeBtn=$ele({ele:"button","id":"remove","class":"auto-task btn btn-default",title:"一键退组,取关",parent:div,text:"Remove"}); let settingBtn=$ele({ele:"button",parent:div,class:"auto-task btn btn-default",id:"Setting",title:"设置",onclick:settingFuc,text:"⚙设置"}); $jq(".auto-task").click(showUpdate); let div3=$ele({ele:"div","id":"exInfo",parent:$tag("body")[0],html:``}); let div2=$ele({ele:"div","id":"info","class":"card-body card",parent:div3}); $id("shouqi").onclick=function(e){ e=$id("shouqi").className=="zhankai"?["20px","↖","展开","shouqi","none"]:["","↘","收起","zhankai","block"]; div3.style.width=e[0]; div3.style.height=e[0]; $id("shouqi").innerText=e[1]; $id("shouqi").setAttribute("title", e[2]); $id("shouqi").setAttribute("class", e[3]); div2.style.display=e[4]; } if(/marvelousga|dupedornot|gamezito/.test(url)){//marvelousga,dupedornot,gamezito领key /gamezito/.test(url)?setH(130):setH(90); if($jq("body").text().match(/THIS GIVEAWAY IS CLOSED FOR THE MOMENT/gim)!=null){//检测是否有key if(confirm("此页面已经没有key了,是否关闭?")) window.close(); } if(/You need to be logged in to perform all tasks/gim.test($tag("body")[0].innerText)) window.location.href="/login";//自动跳转到登录页面 let game=$jq("#giveawaySlug").val(); $jq('cloudflare-app[app="welcome-bar"]').remove(); let w=0; banNewBlock(); //marvelousga,dupedornot,gamezito浏览页面任务 function finTask(taskId,e,text,task){ let p=info("card-text monospace","",`开始任务${taskId}:${text}...`); httpSend({ type: "post", url: task?"/ajax/verifyTasks/webpage/clickedLink":"/ajax/verifyTasks/video/finished", headers:{'x-csrf-token': $jq('meta[name="csrf-token"]').attr('content')}, data:{ giveaway_slug: game, giveaway_task_id: taskId }, callback: function (data) { if(data.status==200){ if(data.json.status==1){ $id((task?"task_webpage_visit_":"task_video_watched_")+taskId).innerText="OK"; addR(p,"OK!"); }else{ let msg=data.json.message||"ERROR"; addR(p,msg,"err"); } }else{ addR(p,`${data.statusText}:${data.status}`,"err"); } if(e===w) getId(); } }); } //marvelousga,dupedornot,gamezito获取任务id function getId(provider=[],taskRoute=[],taskID=[],btn_id=[],p_id=[]){ $jq("button[id^='task_']:not(:contains('VERIFIED'))").map((i,e)=>{ let thisBtn = $(e); provider.push(thisBtn.attr('id').split('_')[1]); taskRoute.push(thisBtn.attr('id').split('_')[2]); taskID.push(thisBtn.attr('id').split('_')[3]); btn_id.push(e.id); /gamezito/.test(url)?p_id.push($jq.trim($(e).parent().parent().find("h3")[0].innerHTML.replace(/id\=\"[\w\W]*?\"/i,""))):p_id.push($jq.trim($(e).parent().find("p")[0].innerHTML.replace(/id\=\"[\w\W]*?\"/i,""))); }); if(taskID.length>0){ verify(provider,taskRoute,taskID,btn_id,p_id,0); }else{ info("card-text monospace","color:green",`所有任务验证完成!`); getKey(); } } //marvelousga,dupedornot,gamezito验证任务 function verify(provider,taskRoute,taskID,btn_id,p_id,e,v=0){ if(/visit[\w\W]*?webpage/gim.test(p_id[e])&&v==1){ e++; if(e"; }else{ $id(btn_id[e]).innerText="ERROR!"; $id(btn_id[e]).style.color="red"; autoOpen&&(/gamezito/gim.test(url)?$id(btn_id[e]).parentNode.parentNode.getElementsByTagName("a")[0].click():$id(btn_id[e]).parentNode.getElementsByTagName("a")[0].click()); let msg=data.json.message||"ERROR"; addR(p,msg,"err"); } e++; if(data.json.percentageNanoBar==100||e>=btn_id.length){ info("card-text monospace","color:green",`所有任务验证完成!`); getKey(); }else{ verify(provider,taskRoute,taskID,btn_id,p_id,e,v); } }else{ $id(btn_id[e]).innerText="ERROR!"; $id(btn_id[e]).style.color="red"; data.status!=419&&($id(btn_id[e]).parentNode.getElementsByTagName("a")[0].click()); addR(p,`${data.statusText}:${data.status}`,"err"); e++; if(e谷歌验证获取key!`); $id("google").onclick=()=>{ $id("get_key_container").scrollIntoView(); $jq("#get_key_container .card-body").css('background-color','red'); setTimeout(()=>{$jq("#get_key_container .card-body").css('background-color','')},600); }; $jq("#exInfo").show(); $id("get_key_container").scrollIntoView(); $jq("#get_key_container .card-body").css('background-color','red'); setTimeout(()=>{$jq("#get_key_container .card-body").css('background-color','')},600); } //marvelousga,dupedornot,gamezito按钮定义 doTaskBtn.onclick=()=>{ $jq("#exInfo").show(); $jq('button>span:contains("Join ")').click(); $jq('button>span:contains("Follow ")').click(); info("card-text monospace","",joinAndFollow); doTask(()=>{ w=0; if($jq("video").length>0){ w++; finTask($jq("video").parent().parent().parent().parent().find("button.btn-dark")[0].id.replace(/task_video_watched_/,""),"","Watch this video",0); } $jq("a:contains('this')").map((i,e)=>{ if(/task_(webpage_clickedLink|video_watched)_[\d]*/.test(e.id)&&!/verified/i.test($jq(e).parent().parent().find("button")[0].innerText)){ let taskId=e.id.replace(/task_webpage_clickedLink_|task_video_watched_/,""); let text=$jq(e).parent().html().replace(/id\=\"[\w\W]*?\"/i,""); w++; finTask(taskId,w,text,1); } }); if(w==0) getId(); },new Date().getTime(),($jq('button>span:contains("Join ")').length+$jq('button>span:contains("Follow ")').length)*3); }; verifyBtn.onclick=()=>{ $jq("#exInfo").show(); getId(); }; } if(/gamecode/.test(url)){//gamecode领key if($jq("body").text().match(/THIS GIVEAWAY IS CLOSED FOR THE MOMENT/gim)!=null){//检测是否有key if(confirm("此页面已经没有key了,是否关闭?")) window.close(); } if(/Please login to see the tasks/gim.test($tag("body")[0].innerText)) window.location.href="/login";//自动跳转到登录页面 banNewBlock(); //gamecode按钮定义 doTaskBtn.onclick=()=>{ $jq("#exInfo").show(); $jq('button>span:contains("Join ")').click(); $jq('button>span:contains("Follow ")').click(); info("card-text monospace","",joinAndFollow); doTask(gamecode_task,new Date().getTime(),($jq('button>span:contains("Join ")').length+$jq('button>span:contains("Follow ")').length)*3); }; verifyBtn.onclick=()=>{ $jq("#exInfo").show(); gamecode_task(); }; let t=0; $jq("#doTask").one('click',()=>{ if(t==0){ gamecode_result(); t++; } }); $jq(verifyBtn).one('click',()=>{ if(t==0){ gamecode_result(); t++; } }); //gamecode做任务$(".btn.btn-theme:not('.auto-task'):not(:contains('VERIFIED'))") function gamecode_task(){ info("card-title","color: #f38288",`正在自动做任务,任务完成后请手动完成谷歌验证领取key!`); $jq(".btn.btn-theme:not('.auto-task'):not(:contains('VERIFIED'))").map((i,e)=>{ e.removeAttribute("disabled"); e.click(); }); $jq("#button-container").show(); } function gamecode_result(){ let taskCard=$jq('.container .row .col-sm-4:visible:not(".col-sm-offset-4")'); if(taskCard.length>0){ taskCard.map((i,e)=>{ if($jq(e).find('button').text()=="VERIFIED"){ $jq(e).hide(); }else{ $jq(e).css('background-color','red'); } }); setTimeout(gamecode_result,500); }else{ $jq('.container .row .col-sm-4:not(:visible):not(".col-sm-offset-4")').removeAttr('style'); $jq('.container .row .col-sm-4:not(:visible):not(".col-sm-offset-4")').show(); $id("insertKey").scrollIntoView(); info('card-title','color:green','所有任务已完成,请手动完成谷歌验证领取key!'); } } } if(/grabfreegame|bananagiveaway/.test(url)){//grabfreegame,bananagiveaway领key setH(110); if($jq("div.left").text().match(/[\d]+/gim)[0]==0){//检测是否有key if(confirm("此页面已经没有key了,是否关闭?")) window.close(); } if(/log.*?in/gim.test($jq(".user").text())) location.href=$jq(".user").children("a.steam")[0].href;//自动跳转到登录页面 //grabfreegame,bananagiveaway按钮定义 doTaskBtn.onclick=()=>{ isBanana(); $jq("#exInfo").show(); $jq('button>span:contains("Join ")').click(); $jq('button>span:contains("Follow ")').click(); info("card-text monospace","",joinAndFollow); doTask(()=>{getBtn("d")},new Date().getTime(),($jq('button>span:contains("Join ")').length+$jq('button>span:contains("Follow ")').length)*3); }; verifyBtn.onclick=()=>{ $jq("#exInfo").show(); getBtn("v"); }; div2.setAttribute("style", `right:50px;bottom:10px;z-index: 99999999999;font-family: Menlo,Monaco,Consolas,"Courier New",monospace;font-size: 20px;background: #fff;color: #f05f00;border: 3px solid #ababab;order-radius: 8px;display: inline-block;`); $ele({ele:"button",parent:div,class:"auto-task",title:"一键加入愿望单&关注游戏",onclick:()=>{atw_fg_gfb(1)},html:"愿望单&关注"}); $ele({ele:"button",parent:div,class:"auto-task",title:"一键移除愿望单&取关游戏",onclick:()=>{atw_fg_gfb(0)},html:"移除愿望单&取关"}); let gameArray=[]; let gameLength=0; let gameId=location.href.replace(/https?:\/\/www.g(rabfreegame|bananagiveaway).com\/giveaway\//gim,"").replace(/\/[\w\W]*/gim,""); function atw_fg_gfb(a=1){ gameLength=0; $jq("#exInfo").show(); let p=info("","",`正在获取游戏列表...`); if(empty(getCookie("game"+gameId))){ if($jq('p:contains("Wishlist")').length>0){ let wishlistTask=$jq('p:contains("Wishlist")');//||$jq('ul.tasks li[data-url]') wishlistTask.map(function(i,e){ if(!/Completed/gim.test($jq(e).parent().text())){ let href=$jq(e).parent().find("button:contains('To do')").attr("onclick").replace(/window.open\(\'|\'\)/gim,""); get_appId_gfb({href:href},a); gameLength++; } }); }else if($jq('ul.tasks li[data-url]').length>0){ let wishlistTask=$jq('ul.tasks li[data-url]'); wishlistTask.map(function(i,e){ let href=$jq(e).attr("data-url"); get_appId_gfb({href:href},a); gameLength++; }); } if(a==1){ var getGame=setInterval(()=>{ if(gameArray.length>=gameLength){ let game=unique(gameArray).join("h"); document.cookie="game"+gameId+"="+game+"; path=/"; clearInterval(getGame); } },1000); } }else{ unique(getCookie("game"+gameId).split("h")).map(function(i){ get_appId_gfb({href:"https://store.steampowered.com/app/"+i,id:i},a); }); } addR(p,"OK","success"); } function w_f_gfb(appId,a){ let p=info("","",`正在获取sessionID...`); httpSend({ mode:"gm", url:"https://store.steampowered.com/app/"+appId, type:"get", callback:function(data){ if(data.text.indexOf('0){ addR(p,"OK","success"); let sessionID=html[0].match(/\".*?\"/gim)[0].replace(/\"/g,""); a==1?wishlist(appId,sessionID,"addtowishlist"):wishlist(appId,sessionID,"removefromwishlist"); a==1?followGame(appId,sessionID,0):followGame(appId,sessionID,1); }else{ addR(p,"sessionID获取失败!","err"); } }else{ addR(p,`请先登录steam!`,"html"); } } }); } function get_appId_gfb(e,a){ let p=info("","",`正在获取游戏Id...`); if(e.href.includes("steampowered")){ addR(p,"OK","success"); w_f_gfb(e.id,a); }else{ httpSend({ mode:"gm", url:e.href, type:"get", callback:function(data){ let appId=data.text.match(/https:\/\/store.steampowered.com\/app\/[\d]+?\//gim)[0].match(/[\d]+/gim)[0]; gameArray.push(appId); addR(p,"OK","success"); w_f_gfb(appId,a); } }); } } //grabfreegame,bananagiveaway检测是否需要香蕉 function isBanana(){ let banana=$("p:contains('Collect'):contains('banana')"); if(banana.length>0){ alert("此key需要收集"+banana.text().match(/[\d]+/gim)[0]+"个香蕉!"); } } //grabfreegame,bananagiveaway获取任务id function getBtn(e,verify_btn=[],do_btn=[]){ $jq("button:contains('Verify'):not('#verify')").map((i,e)=>{ verify_btn.push(e.onclick.toString().match(/\/\/www.(grabfreegame|bananagiveaway).com\/giveaway\/[\w\W]*?\?verify\=[\d]+/)[0]); }); $jq("button:contains('To'):contains('do')").map((i,e)=>{ e.onclick&&(do_btn.push(e.onclick.toString().match(/\/\/www.(grabfreegame|bananagiveaway).com\/giveaway\/[\w\W]*?\?q\=[\d]+/)[0])); }); if(do_btn.length>0&&e==="d") gbDoTask(0,verify_btn,do_btn); if(verify_btn.length>0&&e==="v") bananaVerify(0,verify_btn); } //grabfreegame,bananagiveaway做任务 function gbDoTask(e,verify_btn,do_btn){ let taskId=do_btn[e].match(/\?q\=[\d]+/)[0]; taskId=taskId.replace("?q=",""); let p=info("code","",`执行任务:${taskId}...`); httpSend({ type: "get", url: do_btn[e], timeout:"10000", callback: function (data) { addR(p,"OK"); e++; if(e0) bananaVerify(0,verify_btn); } } }); } //grabfreegame,bananagiveaway验证任务 function bananaVerify(e,verify_btn){ let taskId=verify_btn[e].match(/\?verify\=[\d]+/)[0]; taskId=taskId.replace("?verify=",""); let p=info("code","",`验证任务:${taskId}...`); httpSend({ type: "get", url: verify_btn[e], timeout:"10000", callback: function (data) { addR(p,"OK"); e++; e0){ let ytbBtn=ytb.find("button")[1]; ytbBtn.removeAttribute("disabled"); ytbBtn.click(); }else{ let twitter=$jq(".tasks:first li:contains('Twitter'):not(:contains('Completed'))"); let tweeter=$jq(".tasks:first li:contains('Tweeter'):not(:contains('Completed'))"); let retwitt=$jq(".tasks:first li:contains('Retweet'):not(:contains('Completed'))"); if(twitter.length>0||retwitt.length>0||tweeter.length>0){ let ttBtn=twitter.length>0?twitter.find("button"):(tweeter.length>0?tweeter.find("button"):(retwitt.length>0?retwitt.find("button"):window.location.reload(true))); ttBtn[0].click(); ttBtn[1].removeAttribute("disabled"); ttBtn[1].click(); }else{ window.location.reload(true); } } } } if(/whosgamingnow/.test(url)){//wgn领key if($jq("body").text().match(/out of keys/gim)!=null){//检测是否有key if(confirm("此页面已经没有key了,是否关闭?")) window.close(); } $jq("div.text-center").map(function(i,e){/Please login to enter/gim.test($jq(e).text())&&(location.href="?login")});//自动跳转到登录页面 //wgn按钮定义 doTaskBtn.onclick=()=>{ $jq('button>span:contains("Join ")').click(); $jq('button>span:contains("Follow ")').click(); doTask(wgn_enter,new Date().getTime(),($jq('button>span:contains("Join ")').length+$jq('button>span:contains("Follow ")').length)*3); }; verifyBtn.onclick=()=>{ $jq("#exInfo").show(); wgn_enter(); }; //wgn获取key function wgn_enter(){ httpSend({ type: "post", url: url, data:{submit: "Enter"}, callback: function (data) { if(data.status==200){ if(/

Steam key:<\/h3>

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

Steam key:<\/h3>

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

Steam key:<\/h3>

)|(<\/strong><\/p>)/gi,""); data.text=data.text.replace(key,`${key}`); } document.write(data.text); }else{ info("","color:red",data.statusText+":"+data.status); } }, }); } } if(/gamehag/.test(url)){//gamehag领key setH(150); if($jq("div.strong").eq(0).text()==0){ $jq("div.strong").eq(0).parent()[0].style.backgroundColor="red"; if(confirm("此页面已经没有key了,是否关闭?")) window.close(); } let success,error,a,survey=0;; $jq(div).css({"right": "340px","top": "100px"}); $jq(".auto-task").width("105px"); $css(`.misty-notification{display:none !important}`); //gamehag按钮定义 doTaskBtn.onclick=()=>{ $jq('#getkey').removeAttr('disabled'); $jq("#exInfo").show(); $jq('button>span:contains("Join ")').click(); $jq('button>span:contains("Follow ")').click(); info("card-text monospace","",joinAndFollow); doTask(()=>{ success=0; error=0; survey=$jq("a.giveaway-survey").length>0&&(/\+1/gim.test($jq("a.giveaway-survey").parent().parent().next().text()))?1:0; a=0; let p=info("card-text monospace","",`正在做任务(需要时间较长请耐心等待)...`); $jq("button[data-id]").length>0?gamehag_task(p):gamehag_suryey(0,p); },new Date().getTime(),($jq('button>span:contains("Join ")').length+$jq('button>span:contains("Follow ")').length)*3); }; verifyBtn.onclick=()=>{ $jq('#getkey').removeAttr('disabled'); $jq("#exInfo").show(); success=0; error=0; survey=$jq("a.giveaway-survey").length>0&&(/\+1/gim.test($jq("a.giveaway-survey").parent().parent().next().text()))?1:0; $jq("button[data-id]").length>0&&($jq("button[data-id]").map(function(i,e){gamehag_verify(e)})); survey==1&&(gamehag_verify($jq("a.giveaway-survey")[0],"data-task_id")); }; !empty($id("getkey"))&&($id("getkey").onclick=()=>{$css(`.misty-notification{display:block !important}`)}); //gamehag做任务 function gamehag_task(p){ $jq("button[data-id]").map(function(i,e){ httpSend({ mode:"gm", url:'//gamehag.com/giveaway/click/'+$jq(e).attr("data-id"), type:'get', headers:{'x-csrf-token': $jq('meta[name="csrf-token"]').attr('content')}, callback:function(data){ if(data.finalUrl) httpSend({mode:"gm",url:data.finalUrl,type:'get',headers:{'x-csrf-token': $jq('meta[name="csrf-token"]').attr('content')}}); a++; if(a==$jq("button[data-id]").length){ $jq.ajax({url:'//gamehag.com/games',type:'get',headers:{'x-csrf-token': $jq('meta[name="csrf-token"]').attr('content')},complete:()=>{ $jq.ajax({url:'//gamehag.com/games/war-thunder/play',type:'get',headers:{'x-csrf-token': $jq('meta[name="csrf-token"]').attr('content')},complete:()=>{gamehag_start(p)}}); }}); } } }); }); } //gamehag开始执行 function gamehag_start(p){ addR(p,"OK"); gamehag_suryey(); $jq("button[data-id]").map(function(i,e){gamehag_verify(e)}); } //gamehag问卷调查任务 function gamehag_suryey(e=1,p=0){ if(p!=0) addR(p,"OK"); if(survey==1){ info("card-text monospace","",`正在做问卷调查任务,如果没有此任务请忽视!`); $jq.ajax({url:'//gamehag.com/giveaway/click/'+$jq("a.giveaway-survey").attr("data-task_id"),type:'get',headers:{'x-csrf-token': $jq('meta[name="csrf-token"]').attr('content')}}); gamehag_verify($jq("a.giveaway-survey")[0],"data-task_id"); }else if(e==0){ info("","color:green",`所有任务验证完成,请手动完成验证领取key!`); } } //gamehag验证任务 function gamehag_verify(e,s="data-id"){ if(/\+1/gim.test($jq(e).parent().parent().next().text())){ let p=info("card-text monospace","",`验证任务:${$jq(e).parent().parent().find("a.tooltip-trigger").clone().html()}...`); $jq.ajax({ url:'//gamehag.com/api/v1/giveaway/sendtask', type:'post', data:'task_id='+$jq(e).attr(s), headers:{'x-csrf-token': $jq('meta[name="csrf-token"]').attr('content')}, complete:function(XMLHttpRequest, textStatus){ if(XMLHttpRequest.status==429||/timeout/gim.test(textStatus)){ $jq(p).remove(); gamehag_verify(e); }else{ let data=eval('('+XMLHttpRequest.responseText+')'); data.status=="success"?success++:error++; let color=data.status=="success"?"green":"red"; p.innerHTML+=`${data.message}!`; data.status=="success"&&($jq(e).parent().parent().parent().find("div.task-reward.tooltip-trigger").html(``)); if(/The task has not been completed/gim.test(data.message)&&autoOpen){ $open('https://gamehag.com/giveaway/click/'+$jq(e).attr("data-id"),false); } } if(success+error==$jq("button[data-id]").length+survey){ error>0?info("","color:red",`所有任务验证完成,${error}个任务验证失败!`):info("","color:green",`所有任务验证完成,请手动完成验证领取key!`); } } }); }else{ success++; if(success+error==$jq("button[data-id]").length+$jq("a.giveaway-survey").length){ error>0?info("","color:red",`所有任务验证完成,${error}个任务验证失败!`):info("","color:green",`所有任务验证完成,请手动完成验证领取key!`); } } } } if(/giveawayhopper|chubkeys/.test(url)){//giveawayhopper领key setH(165); $jq("#info").attr("style","border-radius: 0;border-bottom-right-radius: 0;border-bottom-left-radius: 0;"); //giveawayhopper按钮定义 doTaskBtn.onclick=()=>{ $jq("#exInfo").show(); $jq('button>span:contains("Join ")').click(); $jq('button>span:contains("Follow ")').click(); info("card-text monospace","",joinAndFollow); doTask(()=>{ $jq("button.btn-check.btn-primary").map(function(i,e){ let taskText=$jq(e).parent().prev().text().replace(/(^\s*)|(\s*$)/g, ""); let taskId=e.id; let taskUrl=$jq(e).prev().html().match(/xhttp.open\([\w\W]*?\)\;/gim)[0].match(/\"[\w\W]*?\"/gim)[1].replace(/\"/g,"");; hopperTask(taskText,taskUrl,taskId); }); },new Date().getTime(),($jq('button>span:contains("Join ")').length+$jq('button>span:contains("Follow ")').length)*3); }; verifyBtn.onclick=()=>{ $jq("#exInfo").show(); $jq("button.btn-check.btn-primary").map(function(i,e){ let taskText=$jq(e).parent().prev().text().replace(/(^\s*)|(\s*$)/g, ""); let taskId=e.id; let taskUrl=$jq(e).prev().html().match(/xhttp.open\([\w\W]*?\)\;/gim)[0].match(/\"[\w\W]*?\"/gim)[1].replace(/\"/g,"");; hopperTask(taskText,taskUrl,taskId); }); }; function hopperTask(taskText,taskUrl,taskId){ let p=info("","",`正在做任务${taskText}...`); httpSend({ type:"get", url:taskUrl, callback:function(data){ let verifyTaskBtn; if(data.text == 'success'){ verifyTaskBtn = document.getElementById(taskId); verifyTaskBtn.classList.remove("btn-danger"); verifyTaskBtn.classList.add("btn-success"); verifyTaskBtn.innerHTML = ' DONE'; addR(p,data.text,"success"); }else{ verifyTaskBtn = document.getElementById(taskId); verifyTaskBtn.classList.remove("btn-primary"); verifyTaskBtn.classList.remove("btn-primary"); verifyTaskBtn.classList.add("btn-danger"); verifyTaskBtn.innerHTML = ' ERROR'; addR(p,data.text,"err"); } } }); } } if(/giveaway\.su/.test(url)){//giveaway.su领key setH(90); if($jq(".giveaway-ended").length>0){//检测是否有key if(confirm("此页面已经没有key了,是否关闭?")) window.close(); } if(!empty($jq(".steam-login"),1)) location.href="/steam/redirect";//自动跳转到登录页面 $ele({ele:"button",parent:div,class:"auto-task",title:"一键加入愿望单&关注游戏",onclick:()=>{atw_fg(1)},html:"愿望单&关注"}); $ele({ele:"button",parent:div,class:"auto-task",title:"一键移除愿望单&取关游戏",onclick:()=>{atw_fg(0)},html:"移除愿望单&取关"}); let gameArray=[]; let gameLength=0; let gameId=location.href.match(/[\d]+/gim)[0]; function atw_fg(a=1){ gameLength=0; $jq("#exInfo").show(); let p=info("","",`正在获取游戏列表...`); if(empty(getCookie("game"+gameId))){ $jq("a").map(function(i,e){ if(/Wishlist the game|(press|click) \"Follow\" button|Add the game to your wishlist/gim.test($jq(e).text())){ w_f(e,a); gameLength++; } }); if(a==1){ var getGame=setInterval(()=>{ if(gameArray.length>=gameLength){ let game=unique(gameArray).join("h"); document.cookie="game"+gameId+"="+game+"; path=/"; clearInterval(getGame); } },1000); } }else{ unique(getCookie("game"+gameId).split("h")).map(function(i){ w_f({href:"https://store.steampowered.com/app/"+i},a); }); } addR(p,"OK","success"); } function w_f(e,a){ let p=info("","",`正在获取游戏Id...`); httpSend({ mode:"gm", url:e.href, type:"get", callback:function(data){ //console.log(data); if(data.finalUrl&&(data.finalUrl.includes('store.steampowered.com/app/'))){ let appId=data.finalUrl.match(/[\d]+/)[0]; gameArray.push(appId); if(data.text.indexOf('0){ addR(p,"OK","success"); let sessionID=html[0].match(/\".*?\"/gim)[0].replace(/\"/g,""); a==1?wishlist(appId,sessionID,"addtowishlist"):wishlist(appId,sessionID,"removefromwishlist"); a==1?followGame(appId,sessionID,0):followGame(appId,sessionID,1); }else{ addR(p,"sessionID获取失败!","err"); } }else{ addR(p,`请先登录steam!`,"html"); } }else{ addR(p,"未检测到steam商店链接,请手动完成!","warn"); } } }); } //giveaway.su按钮定义 doTaskBtn.onclick=()=>{ $id("exInfo").style.display="block"; info("","color:blue",`只会自动做加steam组和关注鉴赏家任务(需要Giveaway Helper脚本,没有则自动跳过此步骤),其他任务需手动完成!`); if($jq("a.pull-right").length>0&&$jq("a.pull-right").parent().parent()[0].className!="hidden"){ $jq("a.pull-right")[0].click(); return false; } $jq('tr[data-action-id="adjs"]').remove(); if(!empty($jq('a[data-type="link"]'),1)) httpSend({url:$jq('a[data-type="link"]:first').attr("href"),type:'get'}); $jq('a[data-type="link"]').attr("href","javascript:void(0)"); $jq('a[data-type="link"]').find("i").click(); $jq("a.btn-success").removeClass("disabled"); $jq('button>span:contains("Join ")').click(); $jq('button>span:contains("Follow ")').click(); doTask(()=>{giveaway_su_verify($jq("i.glyphicon-refresh"),0)},new Date().getTime(),($jq('button>span:contains("Join ")').length+$jq('button>span:contains("Follow ")').length)*3); }; verifyBtn.onclick=()=>{ $id("exInfo").style.display="block"; info("","color:blue",`只会自动做加steam组和关注鉴赏家任务(需要Giveaway Helper脚本,没有则自动跳过此步骤),其他任务需手动完成!`); if($jq("a.pull-right").length>0&&$jq("a.pull-right").parent().parent()[0].className!="hidden"){ $jq("a.pull-right")[0].click(); return false; } $jq('tr[data-action-id="adjs"]').remove(); if(!empty($jq('a[data-type="link"]'),1)) httpSend({url:$jq('a[data-type="link"]:first').attr("href"),type:'get'}); $jq('a[data-type="link"]').attr("href","javascript:void(0)"); $jq('a[data-type="link"]').find("i").click(); $jq("a.btn-success").removeClass("disabled"); $jq('button>span:contains("Join ")').click(); $jq('button>span:contains("Follow ")').click(); doTask(()=>{giveaway_su_verify($jq("i.glyphicon-refresh"),0,0)},new Date().getTime(),($jq('button>span:contains("Join ")').length+$jq('button>span:contains("Follow ")').length)*3); }; //giveaway.su验证任务 function giveaway_su_verify(vBtn,i,interval=1){ if(vBtn.length==0){ $jq('a.btn-success:contains("Grab key")')[0].click(); }else{ if(!vBtn.eq(i).hasClass('glyphicon-ok')&&!vBtn.eq(i).hasClass('spin')&&!vBtn.eq(i).parent().hasClass('btn-success')) vBtn.eq(i).parent().click(); i++; interval==1?setTimeout(()=>{i{i{ $jq("#exInfo").show(); $jq('button>span:contains("Join ")').click(); $jq('button>span:contains("Follow ")').click(); doTask(()=>{gleam_do_task($jq("a.enter-link"),0)},new Date().getTime(),($jq('button>span:contains("Join ")').length+$jq('button>span:contains("Follow ")').length)*3); }; verifyBtn.onclick=()=>{ $jq("#exInfo").show(); gleam_do_task($jq("a.enter-link"),0); }; //gleam做任务+验证任务 function gleam_do_task(a,i,t=0){ if(i{ if(!/default/.test(a[i].className)){ let btn=a.eq(i).next().find(".btn-primary"); let link=a.eq(i).next().find("a.btn-info.btn-embossed"); let href=link.attr("href"); link.attr("href","javascript:void(0)"); link[0]!=undefined&&(link[0].click()); link.attr("href",href); if(/[\d]/i.test(btn.text())){ gleam_time(a,btn.text(),i,btn); }else{ btn[0].click(); i++; gleam_do_task(a,i,t); } }else{ i++; gleam_do_task(a,i,t); } },1000); }else{ i++; gleam_do_task(a,i,t); } }else{ t==0?gleam_do_task($jq("a.enter-link"),0,1):info("","","任务验证完成,若有未完成任务请手动完成!"); } } //gleam做有时间限制任务 function gleam_time(a,t,i,b){ let time=t.match(/\-?[\d]+/gim)[0]; if(time>0){ $open("https://www.hclonely.com:83/time.php?time="+time,false); let hidden=setInterval(()=>{ if(!document.hidden){ clearInterval(hidden); setTimeout(()=>{ b[0].click(); i++; gleam_do_task(a,i); },1000); } },1000); }else{ b[0].click(); i++; gleam_do_task(a,i); } } } if(/gamehunt/.test(url)){//gamehunt领key setH(60); if($jq(".card-title").text()=="0"){//检测是否有key if(confirm("此页面已经没有key了,是否关闭?")) window.close(); } if($jq("a.nav-link.btn-outline-secondary").length>0) location.href="/auth/vk";//自动跳转到登录页面 //$ele({ele:"button",parent:div,class:"auto-task",title:"取关游戏",onclick:unfollow_game,html:"取关游戏"}); $jq('.auto-task').attr("disabled","disabled"); $jq('#doTask').removeAttr("disabled"); $jq('#Setting').removeAttr("disabled"); doTaskBtn.innerText="初始化"; verifyBtn.innerText="FuckTask"; //gamehunt按钮定义 doTaskBtn.onclick=()=>{ if(autoOpen) info("","color:blue",'请关闭弹窗拦截,否则不会自动打开vk任务页面!'); gamehunt(); }; verifyBtn.onclick=()=>{ GM_setValue('sessionID',''); GM_getValue('vk')==0; gamehuntDoTask(); }; let gamehuntApp={ loading:false, centrifuge:new Centrifuge('wss://c.fstp.fun/connection/websocket'), uid:$('meta[name="uid"]').attr("content"), init:function(p){ this.centrifuge.setToken($('meta[name="cent_token"]').attr("content")),this.centrifuge.connect(),this.centrifuge.on("connect",function(e){ console.log(`Connected!`); p.innerHTML=`连接成功!`; $jq('.auto-task').removeAttr("disabled"); }),this.centrifuge.on("disconnect",function(e){ console.log(`DisConnected!\n${e.reason}`) p.innerHTML=`连接断开,正在重连...`; }); if(this.uid)this.centrifuge.subscribe(`usr#${this.uid}`,(data)=>{ addR($jq('p.task-status:last')[0],"成功!","success"); if(data.data.js){ let taskA=data.data.js.split(";"); if(taskA){ let tasks=[]; taskA.map((e)=>{ if(e.includes("btn-danger")) tasks.push(e.match(/[\d]+/)[0]); }); analyzeTasks(tasks); } } }); }, request:(p,url,type,data,page)=>{ if(url){ if(data||(data={}),type||(type="post"),"get"==type.toLowerCase()){ if(gamehuntApp.loading) return; gamehuntApp.loading=!0 } $.ajax({ url:url, type:type, data:data, error:function(e){ switch(e.status){ case 401: addR(p,"您尚未登录!","err"); break; case 403: addR(p,"访问被拒绝!","err"); break; case 404: addR(p,"错误,找不到页面!","err"); break; case 500: addR(p,"服务器错误!","err"); break; case 503: addR(p,"错误,请刷新页面!","err"); break; } gamehuntApp.loading=!1 } }) } }, notify:(msg,status)=>addR(p,msg,status) }; //初始化wss连接 function gamehunt(){ $jq("#exInfo").show(); let p=info("","",`正在初始化...`); $(()=>gamehuntApp.init(p)); } //获取任务完成状态 function gamehuntDoTask(){ let p=info("task-status","",`正在获取任务完成状态(时间稍长,请耐心等待)...`,""); gamehuntApp.request(p,'/distribution/check', 'post', {id: location.href.match(/[\d]+/)[0]}) } //分析任务 function analyzeTasks(tasks){ let steamTask=[]; let vkTask=[]; for(let i=0;i0) doSteamTask(steamTask); //if(vkTask.length>0) doVkTask(vkTask); } function doSteamTask(task,i=0){ if(i{ if(data.status==200){ let g_sessionID=data.text.match(/g_sessionID = \".*?\"/gim); if(g_sessionID){ let sessionID=g_sessionID[0].match(/\".*?\"/)[0].replace(/\"/g,""); GM_setValue('sessionID',sessionID); addR(p,"成功!","success"); jionSteamGroup(href,name,sessionID,task,i) }else{ addR(p,"失败!","err"); GM_setValue('sessionID',''); } }else{ addR(p,"失败:"+data.status,"err"); GM_setValue('sessionID',''); } } }); }else{ jionSteamGroup(href,name,GM_getValue('sessionID'),task,i) } }else if(GM_getValue('vk')==0){ info("","color:green","所有steam加组任务完成!"); gamehuntDoTask(); }else{ info("","color:green","所有steam加组任务完成!"); } } function jionSteamGroup(href,name,sessionID,task,i){ let p=info("","",`正在加入steam组${name}...`); httpSend({ mode:"gm", type:"post", url:href, headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, data: $.param({ action: "join", sessionID: sessionID }), callback:(data)=>{ if(data.status==200){ if(data.text.includes("grouppage_join_area")){ addR(p,"失败!","err"); }else{ addR(p,"成功!","success"); } }else{ addR(p,"失败:"+data.status,"err"); } i++; doSteamTask(task,i); } }); } /* //vk任务,跨域失败TAT function doVkTask(task,i=0){ if(i${task[i].id}...`); httpSend({ mode:"gm", type:"get", url:task[i].href, callback:(data)=>{ if(data.status==200){ if(data.finalUrl.includes("public")){ let html=data.text; let public_id=html.match(/\"public_id\"\:[\d]+?\,/gim); let enterHash=html.match(/\"enterHash\"\:\".+?\"\,/gim); if(public_id){ public_id=public_id[0].match(/[\d]+/)[0]; }else{ addR(p,"失败(获取public_id失败)","err"); return 0; } if(enterHash){ enterHash=enterHash[0].match(/\".+?\"/gm)[1].replace(/\"/g,""); }else{ addR(p,"失败(获取enterHash失败)","err"); return 0; } httpSend({ mode:"gm", type:"post", url:'https://vk.com/al_public.php', data:{ act: "a_enter", al: 1, pid: public_id, hash: enterHash }, callback:function(data){ console.log(data); console.log(data.text); if(data.text.includes('id="page_actions_btn"')){ addR(p,"成功!","success"); }else{ addR(p,"失败!","err"); } } }); }else{ i++; doVkTask(task,i); } }else{ addR(p,"失败!","err"); i++; doVkTask(task,i); } } }); } } */ //浏览页面任务 function visitLink(e){ let p=info("","",`正在做浏览页面任务${e}...`); try{ httpSend({ mode:"gm", type:"get", url:'https://gamehunt.net'+$jq("#"+e).attr("href"), callback:function(data){ } }); }catch(err){ }finally{ document.getElementById(e).className='btn btn-info btn-lg btn-block'; addR(p,"ok","success"); } } //关注游戏任务 function subscribeGame(e,a=0){ let gameLink=$jq("#"+e).attr("href").match(/to\=https.*?\&/gim)[0].replace(/to\=|\&/gim,''); let path=gameLink.split('/'); if(GM_getValue('sessionID')===1){ let t=setInterval(()=>{ if(GM_getValue('sessionID')&&GM_getValue('sessionID')!==1){ followGame(path[4],GM_getValue('sessionID'),a); clearInterval(t); } },1000); }else if(GM_getValue('sessionID')){ followGame(path[4],GM_getValue('sessionID'),a); }else if(GM_getValue('sessionID')===''){ getSessionID(); let t=setInterval(()=>{ if(GM_getValue('sessionID')&&GM_getValue('sessionID')!==1){ followGame(path[4],GM_getValue('sessionID'),a); clearInterval(t); }else if(GM_getValue('sessionID')===0){ clearInterval(t); } },1000); } } function unfollow_game(){ $jq("#exInfo").show(); GM_setValue('sessionID',''); $('a[id]:contains("Subscribe to the game")').map(function(i,e){ subscribeGame($(e).attr('id'),1); }); } } if(/indiedb/.test(url)){//indiedb领key setH(10); if(empty($jq(".session").find('a:contains("Sign Out")'),1)) location.href="/members/register";//自动跳转到登录页面 //indiedb按钮定义 doTaskBtn.onclick=()=>{ $jq("#exInfo").show(); indiedb_join(); }; verifyBtn.onclick=()=>{ $jq("#exInfo").show(); indiedb_do_task(); }; //indiedb加入赠key function indiedb_join(){ if(/join giveaway/gim.test($jq("a.buttonenter.buttongiveaway").text())){ let p=info("","","正在加入赠key..."); httpSend({type:"post",url:$jq("a.buttonenter.buttongiveaway").attr("href"),data:{ajax: 't'},callback:function(data){if(data.status==200&&data.json.success==true){ addR(p,"ok"); indiedb_do_task(); }else{ addR(p,"失败!请手动加入赠key!","err"); }}}); $(".buttongiveaway").saveUpdate("auth", enterGiveaway); $jq(".buttongiveaway").addClass("buttonentered").text("Success - Giveaway joined"); }else if(/success/gim.test($jq("a.buttonenter.buttongiveaway").text())){ indiedb_do_task(); }else{ info("","color:red","请检查是否已加入次赠key!"); } } //indiedb做任务 function indiedb_do_task(){ $jq("#giveawaysjoined").show(); let id=$jq("script").map(function(i,e){ if(/\$\(document\)/gim.test(e.innerHTML)){ let optionId=e.innerHTML.match(/\"\/newsletter\/ajax\/subscribeprofile\/optin\/[\d]+\"/gim)[0].match(/[\d]+/)[0]; let taskId=e.innerHTML.match(/\"\/[\d]+\"/gim)[0].match(/[\d]+/)[0]; return [taskId,optionId]; } }); if(id.length==2){ $jq("#giveawaysjoined>div>p").find("a").map(function(i,e){ let promo=$jq(e); if(!promo.hasClass("buttonentered")){ let p=info("","",`正在做任务:${$jq(e).parents("p").text()}...`); if(/facebookpromo|twitterpromo|visitpromo/gim.test(e.className)){ $jq.ajax({ type: "POST", url: urlPath("/giveaways/ajax/"+(promo.hasClass("facebookpromo") ? "facebookpromo" : (promo.hasClass("twitterpromo") ? "twitterpromo" : "visitpromo"))+"/"+id[0]), timeout: 60000, dataType: "json", data: {ajax: "t"}, error: function(response, error, exception) { addR(p,"An error has occurred performing the action requested. Please try again shortly.","err"); }, success: function(response) { if(response["success"]) { addR(p,response["text"]); promo.addClass("buttonentered").closest("p").html(promo.closest("p").find("span").html()); } else { addR(p,response["text"],"err"); } } }); }else if(promo.hasClass("emailoptinpromo")){ $jq.ajax({ type: "POST", url: urlPath("/newsletter/ajax/subscribeprofile/optin/"+id[1]), timeout: 60000, dataType: "json", data: {ajax: "t",emailsystoggle: 4}, error: function(response, error, exception) { addR(p,"An error has occurred performing the action requested. Please try again shortly.","err"); }, success: function(response) { if(response["success"]) { addR(p,response["text"]); promo.toggleClass("buttonentered").closest("p").html(promo.closest("p").find("span").html()); } else { addR(p,response["text"],"err"); } } }); }else if(promo.hasClass("watchingpromo")){ let data=getUrlQuery($jq(e).attr("href")); data.ajax="t"; $jq.ajax({ type: "POST", url: urlPath($jq(e).attr("href").replace(/\?.*/,"")), timeout: 60000, dataType: "json", data: data, error: function(response, error, exception) { addR(p,"An error has occurred performing the action requested. Please try again shortly.","err"); }, success: function(response) { if(response["success"]) { addR(p,response["text"]); promo.toggleClass("buttonentered").closest("p").html(promo.closest("p").find("span").html()); $(e).saveUpdate("watch", giveawayWatch); $jq(e).addClass("buttonentered"); } else { addR(p,response["text"],"err"); } } }); }else if(!/the-challenge-of-adblock/gim.test($jq(e).attr("href"))){//watchingpromo $jq.ajax({ type: "POST", url: urlPath($jq(e).attr("href")), timeout: 60000, dataType: "json", data: {ajax: "t"}, error: function(response, error, exception) { addR(p,"An error has occurred performing the action requested. Please try again shortly.","err"); }, success: function(response) { if(response["success"]) { addR(p,response["text"]); promo.toggleClass("buttonentered").closest("p").html(promo.closest("p").find("span").html()); } else { addR(p,response["text"],"err"); } } }); }else{ addR(p,"此任务为花钱订阅任务,脚本自动跳过!","info"); } }else{ info("","",`正在做任务:${$jq(e).parents("p").text()}...ok`); } }); info("","color:blue","所有任务验证完成,没有完成的任务请手动完成!"); }else{ info("","color:red","获取id失败,请重试!") } } } if(/spoune/.test(url)){//spoune领key setH(10); doTaskBtn.onclick=()=>{ $jq("#exInfo").show(); spoune_get_task(); }; verifyBtn.onclick=()=>{ $jq("#exInfo").show(); spoune_get_task(); }; //spoune获取任务信息 function spoune_get_task(){ if($jq("#GiveawayTasks>button.grey").length!=parseInt($jq("#submain3").text())-parseInt($jq("#submain1").text())){ objFrame.objCurrentScriptObject.loadTaskOverview('GiveawayTasks'); let getButton=setInterval(()=>{ if($jq("#GiveawayTasks>button.grey").length==parseInt($jq("#submain3").text())-parseInt($jq("#submain1").text())){ clearInterval(getButton); show_task($jq("#GiveawayTasks>button.grey"),0); } },1000); }else{ show_task($jq("#GiveawayTasks>button.grey"),0); } } //spoune显示任务详情 function show_task(e,i){ if(i{ if($jq("iframe").contents().find("#link").length>0){ clearInterval(getIframe); spoune_verify(e,i); } },1000); }else{ info("","color:blue","所有任务验证完成,没有完成的任务请手动完成!"); objFrame.objCurrentScriptObject.loadTaskOverview('GiveawayTasks'); $jq("#GiveawayBackButton")[0].style.visibility="hidden"; } } //spoune验证任务 function spoune_verify(t,i,e=0){ let p=info("","","正在验证任务:"+$jq(t).eq(i).text()+"..."); httpSend({ type:"get", url:$jq("iframe").contents().find("#link").attr("href").replace("./","./werbung/"), callback:function(data){ if(data.status==200){ if(/Task completed/gim.test(data.text)){ addR(p,"ok"); e=1; }else{ $jq("iframe").contents().find("html").html(data.text); e==0?setTimeout(()=>{ $jq(p).remove(); spoune_verify(t,i,1); },1500):addR(p,"error","err"); } }else{ e==0?setTimeout(()=>{ $jq(p).remove(); spoune_verify(t,i,1); },1500):addR(p,`error:${data.status}`,"err"); } if(e==1) show_task(t,++i); } }); } } if(/prys.ga/.test(url)){//prys.ga领key setH(50); //prys.ga按钮定义 doTaskBtn.onclick=prys_ga; verifyBtn.onclick=prys_ga; function prys_ga(){ let gameId=location.href.match(/[\d]+/)[0]; if($jq('#steps tr[id]').length>0){ for(let i=0;i<$jq('#steps tr[id]').length;i++){ if($jq('#step'+i).children('td:last').find('a').length==0&&$jq('#step'+i).children('td:last').text().includes('Check')) checkClick(i); } for(let i=0;i<$jq('#steps tr[id]').length;i++){ if($jq('#check'+i).length>0&&($jq('#check'+i).text().includes('Check'))){ $checkStep(i); break; } } } } function $checkStep(step,captcha){ if(!captcha)captcha=null; if(step!=="captcha")$("#check"+step).replaceWith(' Checking...'); $jq.post("/api/check_step",{ step:step, id:getURLParameter("id"), "g-recaptcha-response":captcha },function(json){ if(json.success&&step!=="captcha"){ $("#check"+step).replaceWith(' Success'); showAlert("success",'Check passed successfully! Thank you for completing this step. '); }else if(step!=="captcha"){ $("#check"+step).replaceWith(' Check'); var msg="Please complete the step and then check again."; showAlert("warning",(json.response?json.response.error?json.response.error:msg:msg)); } if(json.response){ if(json.response.captcha&&json.success){ showAlert("info",json.response.captcha); captchaCheck(); }else if(json.response.captcha){ showAlert("warning",json.response.captcha); captchaCheck(); } if(json.response.prize){ showAlert("success",'Here is your prize:

'+json.response.prize+'

'); } }else{ setTimeout(()=>{ step++; $checkStep(step); },500); } }).fail(()=>{ $("#check"+step).replaceWith(' Check'); showAlert("danger","Failed to check this step. Please try again later. Spamming it may make it worse."); }); } } var settingDiv=$ele({ele:"div",parent:div,class:"setting",style:"display:none",html:`

全局设置

自动打开任务页面

`}); $id("settingSave").onclick=()=>{ let setting=GM_getValue("setting"); setting['autoOpen']=$id("allAutoOpen").checked; autoOpen=setting['autoOpen']; GM_setValue("setting",setting); $jq("#exInfo").show(); info("","color:green","保存成功!"); }; function settingFuc(){ autoOpen=GM_getValue("setting")['autoOpen']; $jq(settingDiv).toggle(); } function getSessionID(){ let p=info("","",`正在获取sessionID...`); GM_setValue('sessionID',1); httpSend({ mode:"gm", url:"https://store.steampowered.com/", type:"get", callback:function(data){ if(data.text.indexOf('0){ addR(p,"OK","success"); let sessionID=html[0].match(/\".*?\"/gim)[0].replace(/\"/g,""); GM_setValue('sessionID',sessionID); }else{ addR(p,"sessionID获取失败!","err"); GM_setValue('sessionID',0); } }else{ addR(p,`请先登录steam!`,"html"); GM_setValue('sessionID',0); } } }); } //加愿望单 function wishlist(appId,sessionID,act){ let p=info("","",`正在${act=="addtowishlist"?"添加":"移除"}愿望单${appId}...`); httpSend({ mode:"gm", url:"https://store.steampowered.com/api/"+act, type:"post", headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, data:`sessionid=${sessionID}&appid=${appId}`, callback:function(data){ if(!empty(data.text)&&(data.json.success==true)){ addR(p,"OK","success"); }else{ console.log(data); httpSend({ mode:"gm", url:"https://store.steampowered.com/app/"+appId, type:"get", callback:function(data){ if(/已在库中/.test(data.text)){ addR(p,"OK","success"); }else if(/添加至您的愿望单/.test(data.text)){ act=="addtowishlist"?addR(p,"ERROR","err"):addR(p,"OK","success"); }else{ act=="addtowishlist"?addR(p,"OK","success"):addR(p,"ERROR","err"); } } }); } } }); } //关注游戏 function followGame(appId,sessionID,act){ let p=info("","",`正在${act==0?"关注":"取关"}游戏${appId}...`); httpSend({ mode:"gm", url:"https://store.steampowered.com/explore/followgame/", type:"post", headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, data:`sessionid=${sessionID}&appid=${appId}&unfollow=${act}`, callback:function(data){ //console.log(data); if(!empty(data.text)&&(data.text=="true")){ addR(p,"OK","success"); }else{ httpSend({ mode:"gm", url:"https://store.steampowered.com/app/"+appId, type:"get", callback:function(data){ if(data.text.indexOf(`class="btnv6_blue_hoverfade btn_medium queue_btn_active" style="">`)>-1){ act==0?addR(p,"OK","success"):addR(p,"ERROR","err"); }else{ act==0?addR(p,"ERROR","err"):addR(p,"OK","success"); } } }); } } }); } //做加组、关注等任务 function doTask(callback,time,limitTime){ $jq('button>span:contains("Join ")').length+$jq('button>span:contains("Follow ")').length==0||new Date().getTime()-time>limitTime*1000?callback():setTimeout(()=>{doTask(callback,time,limitTime)},300); } //做退组、取关等任务 removeBtn.onclick=()=>{ $jq("#exInfo").show(); info("","",`正在退组、取关,请稍候!`); $jq('button>span:contains("Leave ")').click(); $jq('button>span:contains("Unfollow ")').click(); }; //显示信息 function info(cText,sText,iText){ let p=$ele({ele:"p","class":cText,"style":sText,html:iText,parent:div2}); p.scrollIntoView(); return p; } //任务执行结果 function addR(p,t,r="success"){ switch(r){ case "success": p.innerHTML+=`${t}`; break; case "info": p.innerHTML+=`${t}`; break; case "err": case "error": p.innerHTML+=`${t}`; break; case "warn": case "warning": p.innerHTML+=`${t}`; break; default: p.innerHTML+=t; break; } } //button样式 function btn_class(e){ $jq(".auto-task").attr("class",e+" auto-task"); } function setH(e){ div.style.top=e+'px !important'; } //防止弹出新窗口 function banNewBlock(){ let d=new Date(); let cookiename = "haveVisited1"; document.cookie = cookiename + "=1; path=/"; document.cookie = cookiename + "=" + (d.getUTCMonth()+1) + "/" + d.getUTCDate() + "/" + d.getUTCFullYear() + "; path=/"; } function showUpdate(){ let setting=GM_getValue("setting"); let updateText=setting.updateText; if(updateText){ $jq("#exInfo").show(); info('','color:red;font-weight:900',"v"+setting.version+"更新内容:
"+updateText.replace(/ \/n/g,"
")+"
此消息只显示一次!"); setting['updateText']=''; GM_setValue("setting",setting); } } GM_registerMenuCommand('隐藏按钮',()=>{$jq(div).hide()}); GM_registerMenuCommand('显示按钮',()=>{$jq(div).show()}); }catch(e){ $err("自动任务脚本出错: \n"+e.stack); confirm("自动任务脚本出错! \n点击确定复制错误信息,或打开控制台查看错误信息!")&&($copy(e.stack)); }