keyjoker半自动任务(伪)

keyjoker半自动任务,修改自https://greasyfork.org/zh-CN/scripts/383411,部分操作需手动辅助

目前為 2020-07-05 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         keyjoker半自动任务(伪)
// @namespace    https://greasyfork.org/zh-CN/scripts/406476
// @version      0.2
// @description  keyjoker半自动任务,修改自https://greasyfork.org/zh-CN/scripts/383411,部分操作需手动辅助
// @author       祭夜
// @include      *://www.keyjoker.com/entries*
// @include      *://dashboard.hcaptcha.com/*
// @include      *?type=keyjoker
// @include      *://steamcommunity.com/groups/*
// @supportURL   https://www.jysafe.cn/
// @homepage     https://www.jysafe.cn/
// @run-at       document-end
// @grant        GM_registerMenuCommand
// @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
// ==/UserScript==

(function() {
    'use strict';

    function reLoad(time,sum){
        let date=new Date();
        let hour=date.getHours();
        let min=date.getMinutes()<10?("0"+date.getMinutes()):date.getMinutes();
        if(GM_getValue("start")==1){
            $(".border-bottom").text(hour+":"+min+" 执行新任务检测");
            $.ajax({
                url:"/entries/load",
                type:"get",
                headers:{'x-csrf-token': $('meta[name="csrf-token"]').attr('content')},
                success:(data)=>{
                    if(data && (data.actions && (data.actions.length > sum) )){
                        console.log(data);
                        let date=new Date();
                        let hour=date.getHours();
                        let min=date.getMinutes()<10?("0"+date.getMinutes()):date.getMinutes();
                        $(".border-bottom").text(hour+":"+min+" 检测到新任务");
                        $show({
                            title:"keyjoker新任务",
                            msg:"keyjoker网站更新"+(data.actions.length-sum)+"个新任务!",
                            icon:"https://www.keyjoker.com/favicon-32x32.png",
                            time:0,
                            onclick:function(){
                                location.reload(true);
                            }
                        });
                        // 重载任务列表
                        document.getElementsByClassName("row")[1].parentNode.removeChild(document.getElementsByClassName("row")[1]);
                        $('.layout-container').append('<entries-component></entries-component>');
                        $.getScript("/js/app.js");
                        // 新窗口打开任务链接(免跳转)
                        for(var i = 0; i < data.actions.length; i++)
                        {
                            console.log(data.actions[i]);
                            window.open(data.actions[i].data.url + "?type=keyjoker");
                        }
                    }else{
                        setTimeout(()=>{
                            reLoad(time,sum);
                        },time);
                    }
                },
                error:(err)=>{
                    window.location.reload(true);
                }
            });
        }
    }
    function setTime(){
        let time=prompt('请输入获取任务信息的时间间隔(单位:秒):');
        if(!isNaN(time)){
            GM_setValue("time",parseInt(time));
        }
    }
    function start(){
        $showTest();
        GM_setValue("start",1);
        let time=GM_getValue("time");
        if(!time){
            time=60;
        }
        if(confirm("是否以时间间隔"+time+"秒进行任务检测?")){
            next();
        }
    }
    function next(){
        let time=GM_getValue("time");
        if(!time){
            time=60;
        }
        let sum=$(".list-complete-item").length;
        if(sum>0){
            reLoad(time*1000,sum);
        }else{
            reLoad(time*1000,0);
        }
    }
    if(document.getElementsByClassName("cf-section cf-highlight cf-captcha-container").length != 0)
    {
        console.log("cf验证页面!");
    }else if(document.getElementById("logout-form") && location.search !== "")
    {
        location.href = location.pathname;
    }else
    {
        console.log("正常页面!");
        let isStart=setInterval(()=>{
            if(GM_getValue("start")==1){
                clearInterval(isStart);
                next();
            }
        },1000);
    }
    switch(location.hostname)
    {
        case "dashboard.hcaptcha.com":
            // hcaptcha 登录、设置Cookie
            {
                let hcaptchaClick=setInterval(()=>{
                    console.log("hCaptcha");
                    if(document.getElementsByTagName('button').length == 1)
                    {
                        if(document.getElementsByTagName('button')[0].innerText == "Login")
                        {
                            console.log("Login");
                            document.getElementsByTagName('button')[0].click();
                        }else if(document.getElementsByTagName('button')[0].innerText == "Set Cookie"){
                            console.log("Set Cookie");
                            document.getElementsByTagName('button')[0].click();
                            clearInterval(hcaptchaClick);
                        }
                    }
                },1000);
            }
            break;
        case "store.steampowered.com":
            // Steam 添加愿望单
            document.getElementById("add_to_wishlist_area").lastElementChild.click();
            break;
        case "www.twitch.tv":
            // twitch关注
            {
                let twitchClick=setInterval(()=>{
                    if(document.getElementsByClassName("follow-btn__follow-btn").length == 1)
                    {
                        document.getElementsByClassName("follow-btn__follow-btn")[0].getElementsByTagName("button")[0].click();
                        clearInterval(twitchClick);
                    }
                }, 1000);
            }
            break;
        case "steamcommunity.com":
            // Steam加组
            if(document.referrer == "https://www.keyjoker.com/")
            {
                let steamClick=setInterval(()=>{
                    if(document.getElementsByClassName("grouppage_join_area").length == 1)
                    {
                        document.getElementsByClassName("grouppage_join_area")[0].getElementsByTagName("a")[0].click();
                        clearInterval(steamClick);
                    }
                }, 1000);
            }
            break;
        default :
            break;
    }
    GM_registerMenuCommand("设置时间间隔",setTime);
    GM_registerMenuCommand("开始检测",start);
    GM_registerMenuCommand("停止检测",()=>{
        let date=new Date();
        let hour=date.getHours();
        let min=date.getMinutes()<10?("0"+date.getMinutes()):date.getMinutes();
        GM_setValue("start",0);
        $(".border-bottom").text(hour+":"+min+" 停止执行新任务检测");
    });
})();