京东养猪: 签到、捡饲料、喂食
当前为
// ==UserScript==
// @name 京东养猪
// @namespace http://tampermonkey.net/
// @version 0.3.2
// @description 京东养猪: 签到、捡饲料、喂食
// @description 京东金融: 自动领取京东豆
// @author bob
// @match https://uua.jr.jd.com/*
// @match https://jddx.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)) {
setTimeout(() => {
var btn = document.getElementsByClassName('rewardBoxBot J_ping');
if (btn && btn[0]) {
if (btn[0].innerHTML.indexOf('花费') >= 0) {
console.log('需要花费,跳过领取')
window.close();
}
}
console.log('领取摇一摇的京东豆');
var result = clickByClassName('rewardBoxBot J_ping');
if (result) {
clickByClassName('rewardBtn J_ping');
}
window.close();
}, 5000)
}
// 京东金融自动领取京东豆
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);
}
})();