// ==UserScript==
// @name 自动任务
// @namespace https://greasyfork.org/scripts/370650
// @version 1.4.12
// @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
// @require https://greasyfork.org/scripts/379868-jquery-not/code/jQuery%20not%20$.js?version=700787
// @supportURL https://steamcn.com/t455167-1-1
// @connect instagram.com
// @connect twitter.com
// @connect facebook.com
// @connect youtube.com
// @connect steampowered.com
// @connect accounts.google.com
// @connect vk.com
// @connect gamehag.com
// @connect g2a.com
// @connect gamehunt.net
// @connect 9000.plati.market
// @connect csgolite.ru
// @connect gosens.bet
// @connect discordapp.com
// @connect miped.ru
// ==/UserScript==
'use strict';
try{
const SETTING={
version:'1.4.12',
autoOpen:true,//true为自动打开任务页面;改为false则不打开任务页面
updateText:'1.修复BUG',
};
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=`正在做加组、关注等任务(此功能需要<a href="https://greasyfork.org/zh-CN/scripts/34764-giveaway-helper" target="_blank">Giveaway Helper脚本</a>,没有则自动跳过此步骤),请稍候!`
$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",title:"一键做任务+验证",parent:div,text:"FuckTask"});
let verifyBtn=$ele({ele:"button","id":"verify","class":"auto-task",title:"一键验证",parent:div,text:"Verify"});
let removeBtn=$ele({ele:"button","id":"remove","class":"auto-task",title:"一键退组,取关",parent:div,text:"Remove"});
let settingBtn=$ele({ele:"button",parent:div,class:"auto-task",id:"Setting",title:"设置",onclick:settingFuc,text:"⚙设置"});
$jq(".auto-task").click(showUpdate);
let div3=$ele({ele:"div","id":"exInfo",parent:$tag("body")[0],html:`<span class="infos"><a id="shouqi" class="zhankai" href="javascript:;"" title="收起">↘</a></span>`});
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);
/https?:\/\/gamezito.com\/giveaway\/[\w\W]*/.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<btn_id.length){
verify(provider,taskRoute,taskID,btn_id,p_id,e);
}else{
info("card-text monospace","color:green",`所有任务验证完成!`);
getKey();
}
return;
}else{
if(/visit[\w\W]*?webpage/gim.test(p_id[e])&&v!=1) v=1;
let p=info("card-text monospace","",`验证任务${taskID[e]}:${p_id[e]}...`);
if(/Join[\w\W]*?in Steam/i.test(p_id[e].innerText)){
$id(btn_id[e]).removeAttribute("disabled");
$id(btn_id[e]).click();
}
httpSend({
type: "post",
url: '/ajax/verifyTasks/' + provider[e] + '/' + taskRoute[e],
headers:{'x-csrf-token': $jq('meta[name="csrf-token"]').attr('content')},
data:{
giveaway_slug: game,
giveaway_task_id: taskID[e]
},
callback: function (data) {
if(data.status==200){
if(data.json.status==1){
let thisBtn=$jq('#'+btn_id[e]);
thisBtn.text('VERIFIED')
thisBtn.attr('disabled', true);
thisBtn.attr('data-disabled', 1);
p.innerHTML+="<font style='color:green'>OK!</font>--<font style='color:blue'>"+data.json.percentageNanoBar+"%</font>";
}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<btn_id.length){
verify(provider,taskRoute,taskID,btn_id,p_id,e);
}else{
info("card-text monospace","color:green",`所有任务验证完成!`);
getKey();
}
}
},
});
}
}
//marvelousga,dupedornot,gamezito获取steamkey
function getKey(){
if(/your[\s]*?key[\w\W]*?[\w\d]{5}(-[\w\d]{5}){2}/gim.test($tag("body")[0].innerText)){
info("card-text monospace","",`你已经领取过key了!`);
return 0;
}
$jq("#get_key_container").show();
info("card-text monospace","",`请手动完成<a id="google" href="javascript:void(0)">谷歌验证</a>获取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))){
let wishlistTask=$jq('p:contains("Wishlist")');
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++;
}
});
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('<a class="menuitem" href="https://store.steampowered.com/login/?')<0){
let html=data.text.match(/g\_sessionID.*?\=.*?\".*?\"/gim);
if(html.length>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,`<a href="https://store.steampowered.com/login/" style="color:red" target="_blank">请先登录steam!</a>`,"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(e<do_btn.length){
gbDoTask(e,verify_btn,do_btn);
}else{
if(verify_btn.length>0) 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++;
e<verify_btn.length?bananaVerify(e,verify_btn):bananaRe();
}
});
}
//grabfreegame,bananagiveaway刷新网页
function bananaRe(){
let ytb=$jq(".tasks:first li:contains('Subscribe'):contains('our'):contains('channel'):not(:contains('Completed'))");
if(ytb.length>0){
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(/<h3>Steam key:<\/h3><p><strong class=\"SteamKey\">[\w\d]{5}(-[\w\W]{5}){2}<\/strong><\/p>/i.test(data.text)){
let key=data.text.match(/<h3>Steam key:<\/h3><p><strong class=\"SteamKey\">[\w\d]{5}(-[\w\W]{5}){2}<\/strong><\/p>/i)[0].replace(/(<h3>Steam key:<\/h3><p><strong class="SteamKey">)|(<\/strong><\/p>)/gi,"");
data.text=data.text.replace(key,`<a href=https://store.steampowered.com/account/registerkey?key=${key} title="点击激活">${key}</a>`);
}
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;;
$(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","",`正在做任务(<font style="color:red">需要时间较长请耐心等待</font>)...`);
$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){
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+=`<font style='color:${color}'>${data.message}!</font>`;
data.status=="success"&&($jq(e).parent().parent().parent().find("div.task-reward.tooltip-trigger").html(`<svg class="nc-icon nc-align-to-text grid-24 glyph"><use xlink:href="/icons/nci-fill.svg#nc-icon-check-simple"></use></svg>`));
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 = '<i class="la la-check"></i> 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 = '<i class="la la-close"></i> ERROR';
addR(p,data.text,"err");
}
}
});
}
}
if(/giveaway\.su/.test(url)){//giveaway.su领key 90
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){
let appId=data.finalUrl.match(/[\d]+/)[0];
gameArray.push(appId);
if(data.text.indexOf('<a class="menuitem" href="https://store.steampowered.com/login/?')<0){
let html=data.text.match(/g\_sessionID.*?\=.*?\".*?\"/gim);
if(html.length>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,`<a href="https://store.steampowered.com/login/" style="color:red" target="_blank">请先登录steam!</a>`,"html");
}
}
});
}
//giveaway.su按钮定义
doTaskBtn.onclick=()=>{
$id("exInfo").style.display="block";
info("","color:yellow;background-color:black",`只会自动做加steam组和关注鉴赏家任务(需要<a href="https://greasyfork.org/zh-CN/scripts/34764-giveaway-helper" target="_blank">Giveaway Helper脚本</a>,没有则自动跳过此步骤),其他任务需手动完成!`);
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:yellow;background-color:black",`只会自动做加steam组和关注鉴赏家任务(需要<a href="https://greasyfork.org/zh-CN/scripts/34764-giveaway-helper" target="_blank">Giveaway Helper脚本</a>,没有则自动跳过此步骤),其他任务需手动完成!`);
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<vBtn.length?giveaway_su_verify(vBtn,i):giveaway_su_verify($jq("i.glyphicon-refresh"),0)},2000):setTimeout(()=>{i<vBtn.length?giveaway_su_verify(vBtn,i,0):info('','','验证完成!')},2000);
}
}
}
if(/gleam/.test(url)){//gleam领key
setH(10);
//gleam按钮定义
doTaskBtn.onclick=()=>{
$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<a.length){
if((!/check/gim.test($jq("a.enter-link").eq(i).children(".tally").find("i.fa")[0].className)&&(!(t==0&&/on twitter/gim.test($jq("a.enter-link").eq(i).text()))))){
a[i].click();
setTimeout(()=>{
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.cn/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/vkontakte";//自动跳转到登录页面
//gamehunt按钮定义
doTaskBtn.onclick=()=>{
gamehunt(1);
};
verifyBtn.onclick=()=>{
gamehunt(0);
};
function gamehunt(o,i=0){
$jq("#exInfo").show();
let ge=$jq("script:contains('grecaptcha.ready')").html().match(/grecaptcha\.execute\(\'.*?\'/gim);
if(!empty(ge)){
var geToken=ge[0].replace(/grecaptcha.execute\(\'|\'/g,"");
grecaptcha.ready(function(){grecaptcha.execute(geToken, {action: 'distribution'}).then(gamehuntKey);});
}
info("","color:yellow;background-color:black",'只会自动做"Go to"任务(可能需要多次点击才能完成所有此任务),其他任务请手动完成!');
if(i==1) info("","color:red",'如果看到这条信息,说明这个网站目前太卡,请耐心等在请求完成(显示"END")');
if(autoOpen&&o) info("","color:yellow;background-color:black",'请关闭弹窗拦截,否则不会自动打开任务页面!');
function gamehuntKey(token){
$jq.ajax({
url: '/end/distribution',
type: 'POST',
data: {id: location.href.match(/[\d]+/gim)[0],'g-recaptcha-response':token},
timeout:i==0?6000:0,
success: function(data){
switch(data.err) {
case '0':
info("","color:green","Steam Key:"+data.res);
for (let i = 0; i < ids.length; i++) {
document.getElementById(ids[i]).className='btn btn-success btn-lg btn-block';
}
for (let i = 0; i < data.res.length; i++) {
document.getElementById(data.res[i]).className='btn btn-danger btn-lg btn-block';
}
break;
case '01':
case 'err01':
info("","color:red","你已经获取过key了!请<a id='lookKey' href='javascript:void(0)'>点此查看</a>或前往<a href='https://gamehunt.net/profile' target='_blank'>profile页面</a>点击\"Hand history\"查看");
$id('lookKey').onclick=()=>{
info("","color:green",'正在查找,请稍候...');
httpSend({
url:'//gamehunt.net/history_game_distribution',
type:'get',
callback:(data)=>{
if((!empty(data.json))&&(!empty(data.json.results))){
let key=0;
data.json.results.map((e)=>{
if(e.id==location.href.match(/[\d]+/gim)[0]){
info("","color:green","Steam Key:"+e.key);
key=1;
}
});
key==0&&(info("","color:red","没有找到当前游戏key!请前往<a href='https://gamehunt.net/profile' target='_blank'>profile页面</a>点击\"Hand history\"查看"));
}else{
info("","color:red","没有找到当前游戏key!请前往<a href='https://gamehunt.net/profile' target='_blank'>profile页面</a>点击\"Hand history\"查看");
}
}
});
}
break;
case '02':
info("","已经没有key了!");
break;
case 'err':
for (let i = 0; i < ids.length; i++) {
document.getElementById(ids[i]).className='btn btn-success btn-lg btn-block';
}
data.res.map(e=>{
document.getElementById(e).className='btn btn-danger btn-lg btn-block';
if(/Go to|View review|Like video|Subscribe to developer|Add game to wish list|Subscribe to the game/gim.test($jq("#"+e).text())) visitLink(e);
if(autoOpen&&o){
if(!/Go to|View review|Like video|Subscribe to developer|Add game to wish list|Subscribe to the game/gim.test($jq("#"+e).text())) $open('https://gamehunt.net'+$jq("#"+e).attr("href"),false);
}
});
info("","color:yellow;background-color:black","如果某个任务已完成但一直显示未完成。 \n</br>您可以检查帐户隐私设置:<a href=\"https://www.youtube.com/account_privacy\"> Youtube </a> \n</br>还可以关联youtube账户:<a href=\"/auth/youtube\">检查</a> \n</br>检查steam设置:<a href=\"https://steamcommunity.com/id/me/edit/settings/\"> Steam </a> ");
break;
case '05':
info("","color:red","本网站禁止使用多个账户!");
break;
default:
info("","color:red",data.err);
break;
}
info("","color:green",'END!');
},
error: function (err) {
if(i==0){
setTimeout(()=>{
gamehunt(o,1);
},500);
}else{
info("","color:red",err.responseText);
info("","color:green",'END!');
}
}
});
}
}
function visitLink(e){
let p=info("","",`正在做浏览页面任务<a href="${$jq("#"+e).attr("href")}" target="_blank">${e}</a>...`);
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");
}
}
}
if(/indiedb/.test(url)){//indiedb领key 10
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()}...<font style="color:green">ok</font>`);
}
});
info("","color:yellow;background-color:black","所有任务验证完成,没有完成的任务请手动完成!");
}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<e.length){
eval($jq(e).eq(i).attr("onclick"));
let getIframe=setInterval(()=>{
if($jq("iframe").contents().find("#link").length>0){
clearInterval(getIframe);
spoune_verify(e,i);
}
},1000);
}else{
info("","color:yellow;background-color:black","所有任务验证完成,没有完成的任务请手动完成!");
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 50
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('<span id="check'+step+'"><i class="fa fa-refresh fa-spin fa-fw"></i> Checking...</span>');
$jq.post("/api/check_step",{
step:step,
id:getURLParameter("id"),
"g-recaptcha-response":captcha
},function(json){
if(json.success&&step!=="captcha"){
$("#check"+step).replaceWith('<span class="text-success" id="check'+step+'"><i class="fa fa-check"></i> Success</span>');
showAlert("success",'Check passed successfully! Thank you for completing this step. <i class="fa fa-smile-o"></i>');
}else if(step!=="captcha"){
$("#check"+step).replaceWith('<a id="check'+step+'" href="javascript:checkStep('+step+')"><i class="fa fa-question"></i> Check</a>');
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:<h1 role="button" align="middle" style="word-wrap: break-word;">'+json.response.prize+'</h2>');
}
}else{
setTimeout(()=>{
step++;
$checkStep(step);
},500);
}
}).fail(()=>{
$("#check"+step).replaceWith('<a id="check'+step+'" href="javascript:checkStep('+step+')"><i class="fa fa-question"></i> Check</a>');
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:`<h4 align="center">全局设置</h4><p><input id="allAutoOpen" type="checkbox" ${autoOpen?"checked":""} />自动打开任务页面</p><button id="settingSave" style="width:48px;margin:0 33%">保存</button>`});
$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 wishlist(appId,sessionID,act){
let p=info("","",`正在${act=="addtowishlist"?"添加":"移除"}愿望单<a href="https://store.steampowered.com/app/${appId}" target="_blank">${appId}</a>...`);
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{
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?"关注":"取关"}游戏<a href="https://store.steampowered.com/app/${appId}" target="_blank">${appId}</a>...`);
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){
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+=`<font style='color:green'>${t}</font>`;
break;
case "info":
p.innerHTML+=`<font style='color:yellow;background-color:black'>${t}</font>`;
break;
case "err":
p.innerHTML+=`<font style='color:red'>${t}</font>`;
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+"更新内容:</br>"+updateText.replace(/ \/n/g,"</br>")+" </br>此消息只显示一次!");
setting['updateText']='';
GM_setValue("setting",setting);
}
}
}catch(e){
$err("自动任务脚本出错: \n"+e.stack);
confirm("自动任务脚本出错! \n点击确定复制错误信息,或打开控制台查看错误信息!")&&($copy(e.stack));
}