Greasy Fork

来自缓存

Greasy Fork is available in English.

京东养猪

京东养猪: 签到、捡饲料、喂食

当前为 2020-03-16 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         京东养猪
// @namespace    http://tampermonkey.net/
// @version      0.3.3
// @description  京东养猪: 签到、捡饲料、喂食
// @description  京东金融: 自动领取京东豆
// @author       bob
// @match        https://uua.jr.jd.com/*
// @match        https://jddx.jd.com/*
// @match        https://vip.m.jd.com/*
// @grant        none
// ==/UserScript==

// 
const jdyzUrl = 'https://uua.jr.jd.com/uc-fe-wxgrowing/cloudpig/index/home/20191030/158432123100870350/?channelLV=qdy&shareId=vZoq-O6FkuUp62HuKheuTcAdoUJQ3Dik&sourceID=240&actflag=1AEE706F1D&isPay=N&utm_source=Android%2aurl%2a1584321232229&utm_medium=jrappshare&utm_term=qqfriends';
// 捡礼物盒周期
const pickInterval = 3000;
var checkPickFoodTask = null;
var pickFoodTask = null;

(function() {
    'use strict';
    // Your code here...
    function clickByClassName (className) {
        var btn = document.getElementsByClassName(className)
        if (btn && btn[0]) {
            btn[0].click();
            return true;
        }
        return false;
    }

    // 京东金融:摇一摇领取京东豆
    if (/https:\/\/vip.m.jd.com\/newPage\/reward\/reward/.test(window.location.href)) {
        console.log('sdfsdfsdfsdfsdfsdfwefwefwe')
        setTimeout(() => {
            var btn = document.getElementsByClassName('rewardBoxBot J_ping');
            if (btn && btn[0]) {
                if (btn[0].innerHTML.indexOf('花费') >= 0) {
                    console.log('需要花费,跳过领取')
                    alert('需要花费,跳过领取,即将关闭窗口')
                    window.close();
                }
            }

            console.log('领取摇一摇的京东豆');
            var result = clickByClassName('rewardBoxBot J_ping');
            if (result) {
                clickByClassName('rewardBtn J_ping');
            }
            alert('领取完成,即将关闭窗口');
            window.close();
        }, 5000)
    }

    // 领取种草的阅读文章
    if (/https:\/\/jddx.jd.com\/m\/jddnew\/discovery\/0.html*/.test(window.location.href)) {
        console.log('开始阅读种草文章');
        function load () {
            var jddUrls = new Array();
            var targets = document.getElementsByClassName('essay-holder');
            // 一个连接含有 'essay-holder' 这样两个标签,从标签中解析出url参数
            var p1 = targets[0].getAttribute('clstag'); // jr|keycount|jiandandian_0305|faxianpage_neirong_info_8582799
            p1 = p1.substr(p1.lastIndexOf('_')); // 得到 8582799
            jddUrls.push(`https://jddx.jd.com/m/jdd/index.html?id=${p1}`);

            var p2 = targets[2].getAttribute('clstag');
            p2 = p2.substr(p2.lastIndexOf('_'));
            jddUrls.push(`https://jddx.jd.com/m/jdd/index.html?id=${p2}`);

            var p3 = targets[4].getAttribute('clstag');
            p3 = p3.substr(p3.lastIndexOf('_'));
            jddUrls.push(`https://jddx.jd.com/m/jdd/index.html?id=${p3}`);

            jddUrls.forEach(url => {
                console.log(url)
                var aTag = document.createElement('a');
                aTag.href = url
                aTag.target = '_blank'
                aTag.click();
//                 window.open(url);
            });
        }
        document.onload = load();
/*         document.onload = () => {
        } */
    }

    // 京东金融自动领取京东豆
    if (/jddx.jd.com/.test(window.location.host)) {
        setInterval(() => {
            var iTags = document.getElementsByTagName('i');
            console.log('查询标签' + iTags.length)
            for (var i=0; i<iTags.length; i++) {
                console.log(iTags[i].innerHTML)
                if ('领取' === iTags[i].innerHTML) {
                    console.log('点击领取');
                    iTags[i].click();
                    window.close();
                }
            }
        }, 3000)
    }

    // 京东赚钱领取任务
    if (/https:\/\/jddx.jd.com\/m\/jddnew\/money\/index.html/.test(window.location.href)) {
        var isSigned = clickByClassName('item-icon today');
        if (isSigned) {
            clickByClassName('jr-popup-close');
        }
        var slideImgs = document.getElementsByClassName('slide-img')
        for (var i=0; i<slideImgs.length; i++) {
            if ('https://img30.360buyimg.com/cf/jfs/t1/99385/33/74/62650/5da6dbc6E2275e68c/23076bb1f36806fa.jpg' === slideImgs[i].src) {
                slideImgs[i].click();
            }
        }
    }

    // 京东养猪
    if (/uua.jr.jd.com/.test(window.location.host)) {
        // 签到
        function signIn () {
            console.log('签到')
            // 打开签到
            document.getElementsByClassName("main-icon main-icon-sign")[0].click();
            setTimeout(() => {
                // 签到
                var signBtn = document.getElementsByClassName("sign-btn");
                if (signBtn && signBtn[0]) {
                    signBtn[0].click();
                }
                // 关闭签到
                var closeBtn = document.getElementsByClassName("sign-close")
                if (closeBtn && closeBtn[0]) {
                    closeBtn[0].click();
                }
                closeBtn = document.getElementsByClassName("precious-btn")
                if (closeBtn && closeBtn[0]) {
                    closeBtn[0].click();
                }
            }, 1000);
        }

        // 捡猪饲料
        function pickFood () {
            console.log('开始捡猪饲料');
            if (pickFoodTask) {
                return;
            }
            pickFoodTask = setInterval(() => {
                var box1 = document.getElementsByClassName("precious precious-one precious-pos-1 springback")[0];
                if (box1) {
                    box1.click();
                } else {
                    var box2 = document.getElementsByClassName("precious precious-one precious-pos-2 springback")[0];
                    if (box2) {
                        box2.click();
                    }
                }
            }, pickInterval);
        }

        // 停止捡饲料
        function stopPickFood () {
            console.log('停止捡饲料')
            if (pickFoodTask) {
                clearInterval(pickFoodTask);
            }
        }

        // 添加食物
        function addFood () {
            console.log('开始喂食')
            // 打开饲料仓库
            document.getElementsByClassName("draw-trough-img")[0].click();
            setTimeout(() => {
                // 饲料详情
                var foodItems = document.getElementsByClassName("feed-item-desc");
                var foodCounts = new Array();
                for (var i=0; i<foodItems.length; i++) {
                    var count = foodItems[i].childNodes[1].innerText;
                    foodCounts.push({"index": i, "count": count});
                }
                // 饲料按余量降序
                foodCounts.sort((a, b) => {
                    return b.count - a.count;
                });
                // 取最大余量喂食
                var index = foodCounts[0].index;
                document.getElementsByClassName("feed-item-btn")[index].click();
                // 关闭饲料仓库
                document.getElementsByClassName("feed-close")[0].click();
            }, 1000);
        }

        // 是否需要喂食
        function isNeedFood () {
            var needBtn = document.getElementsByClassName("draw-feed-btn")
            if (needBtn && needBtn[0]) {
                return true;
            }
            // 剩余时间 mm:hh:ss 格式
            var residue = document.getElementsByClassName("draw-feed-time")[0].innerText;
            return !/\d{2}:\d{2}:\d{2}/.test(residue);
        }

        // 协调喂食和捡饲料
        function checkAndAddFood () {
            // 每1分钟检查一次
            setInterval(() => {
                if (isNeedFood()) {
                    stopPickFood();
                    addFood();
                    pickFood();
                } else {
                    console.log('不需要喂食')
                }
            }, 60*1000);
        }

        // 检查是否已没新饲料,并停止捡饲料
        function checkAndStopPickFood () {
            // 每一分钟检查
            checkPickFoodTask = setInterval(() => {
                var disableFood = document.getElementsByClassName("main-precious-disable")[0]
                if (disableFood) {
                    stopPickFood();
                    clearInterval(checkPickFoodTask);
                }
            }, 60*1000);
        }

        setTimeout(() => {
            console.log('开始搞事情')
            signIn();
            pickFood();
            checkAndAddFood();
            checkAndStopPickFood();
        }, 3000);
    }
    
})();