您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
// ==UserScript== // @name 自动任务 // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://*/* // @grant none // ==/UserScript== const waitForLoadTime = 2000; const TASK_STATUS = {init: 0, success: 1, fail: -1}; (function() { 'use strict'; // Your code here... // 创建iframe任务数据集中存储,解决跨越问题 var noHostCache = (() => { var frame = document.createElement('iframe'); // frame.style = 'display: none'; frame.id = 'storage-frame'; frame.src = `data:text/html, <html> <script> window.addEventListener('message', function(e) { if (e.source != window.parent) { return; } console.log(e.data); var data = JSON.parse(e.data); var res = false;; if (data.opr == 'get') { res = localStorage.getItem(data.key); } else if (data.opr == 'set') { localStorage.setItem(data.key, data.value); res = true; } window.parent.postMessage(JSON.stringify(res), '*'); }, false); </script> <body></body> </html> `; frame.src = 'https://lin_bo.gitee.io/html/localStorage.html'; // document.body.append(frame); function set(key, value) { var data = JSON.stringify({opr: 'set', key: key, value: value}); new Promise((resolve, reject) => { document.getElementById('storage-frame').contentWindow.postMessage(data, '*'); }).then((data) => { console.log(data) }).catch((e) => { console.error(`set错误 ${e}`) }); } function get(key) { var data = JSON.stringify({opr: 'get', key: key}); document.getElementById('storage-frame').contentWindow.postMessage('data', '*'); window.addEventListener('message',function(e){ if(e.source!=window.parent) return; console.log(e.data); }, false); } return {set: set, get: get}; })(); // 任务核心功能 const _task = (function() { const taskKeyPrefix = 'bob_auto_task'; const taskKey = `${taskKeyPrefix}_${new Date().getFullYear()}-${new Date().getMonth()}-${new Date().getDate()}`; function getCache(key) { try { var data = noHostCache.get(key); if (data) { return JSON.parse(data); } return null; } catch (e) { console.error(e); return null; } } function setCache(key, data) { if (!data) { return; } noHostCache.set(key, JSON.stringify(data)); } // 判断是否匹配到任务 function isUrlMatchTask(curUrl, taskUrl) { var cUrl = new URL(curUrl); var cPath = `${cUrl.protocol}//${cUrl.hostname}${cUrl.port == '' ? '' : ':'+cUrl.port}${cUrl.pathname}`; var tUrl = new URL(taskUrl); var tPath = `${tUrl.protocol}//${tUrl.hostname}${tUrl.port == '' ? '' : ':'+tUrl.port}${tUrl.pathname}`; return cPath == tPath; } // 获取当前网页任务信息 function getCurrentTaskInfo() { var allTask = getCache(taskKey); if (!allTask) { return null; } var taskInfo = allTask.filter((item, index) => { return isUrlMatchTask(window.location.href, item.url); }); if (taskInfo && taskInfo[0]) { return taskInfo[0]; } return null; } // 注册(不可用)任务 function _reg(name, fun, url) { if (!(name && fun && url)) { console.warn('注册(不可用)任务,必须有 name、 fun、 url'); return; } // 删除非当天任务 for (var i=0; i<window.localStorage.length; i++) { var key = window.localStorage.key(i); if (key.indexOf(taskKeyPrefix) == 0 && key !== taskKey) { console.log(`删除以前任务: ${key}`) window.localStorage.removeItem(key); } } var task = getCurrentTaskInfo(); if (task) { console.log(`已注册(不可用)任务: ${JSON.stringify(task)}`); return; } var taskInfo = getCache(taskKey); // 创建当天任务 if (!taskInfo) { console.log(`创建当天任务: ${taskKey}`); taskInfo = []; } console.log(`注册(不可用)任务: 【${name}】 ${url}`) // status: -1: 失败; 0: 未执行; 1: 成功 taskInfo.push({name: name, url: url, fun: fun, status: 0}) setCache(taskKey, taskInfo); } // 执行成功 function success() { // 获取当前任务 var allTask = getCache(taskKey); if (!allTask) { return null; } var index = -1; allTask.forEach((item, i) => { if (isUrlMatchTask(window.location.href, item.url)) { index = i; } }); if (index >= 0) { var task = allTask[index]; task.status = TASK_STATUS.success; var tasks = getCache(taskKey); allTask[index[0]] = task; setCache(taskKey, allTask); console.log('任务执行成功: ' + JSON.stringify(task)); return; } console.warn('当前页没有任务'); } // 执行失败 function fail() { // 获取当前任务 var allTask = getCache(taskKey); if (!allTask) { return null; } var index = -1; allTask.forEach((item, i) => { if (isUrlMatchTask(window.location.href, item.url)) { index = i; } }); if (index >= 0) { var task = allTask[index]; task.status = TASK_STATUS.fail; var tasks = getCache(taskKey); allTask[index[0]] = task; setCache(taskKey, allTask); console.log('任务执行失败: ' + JSON.stringify(task)); return; } console.warn('当前页没有任务'); } // 执行下一个任务 function doNext() { var allTask = getCache(taskKey); allTask.forEach(item => { if (item.status == 0) { console.log(`开始执行: ${item.name}`) } else if (item.status == 1) { console.log(`跳过已执行: ${item.name}`) } else if (item.status == 1) { console.log(`跳过失败: ${item.name}`) } }); } // 开始任务 function start() { // 获取当前任务 var taskInfo = getCurrentTaskInfo(); if (!taskInfo) { console.log('当前无任务') return; } console.log(`当前任务: ${JSON.stringify(taskInfo)}`); // 执行任务 window.addEventListener("load", () => { setTimeout(() => { eval(`${taskInfo.fun}()`); }, waitForLoadTime); }); // } // 执行任务 function reg(name, fun, url) { if (isUrlMatchTask(window.location.href, url)) { window.addEventListener("load", () => { setTimeout(() => { console.log(`开始执行: ${name}`) eval(`${fun}()`); }, waitForLoadTime); }); } return; } return {reg: reg, doNext: doNext, start: start, success: success, fail: fail}; })(); // 任务1 _task.reg('测试任务', 'task1', 'file:///C:/Users/71085/Desktop/temp/jd.html'); function task1() { setTimeout(() => { console.log('taksk1') }, 1000); } // 任务1 _task.reg('京东金融-每日签到', 'task11', 'https://uf.jr.jd.com/activities/sign/v5/index.html?channel=JRAPP'); function task11() { var signBtn = document.querySelector('.sign-btn'); if (signBtn) { if (signBtn.innerHTML.indexOf('已连续签到') >= 0) { console.log('每日签到:已签到'); } else { signBtn.click(); console.log('每日签到:成功'); // TODO 关闭奖励 } } else { console.warn('每日签到:找不到签到按钮'); } } // 注册(不可用)任务2 // _task.reg('京东金融-种草阅读文章', 'task2', 'https://jddx.jd.com/m/jddnew/discovery/0.html'); function task2() { console.log('开始阅读3篇种草文章'); 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(); }); targets[0].click(); } // 注册(不可用)任务3 _task.reg('看广告领京东豆', 'task3', 'https://jdda.jd.com/btyingxiao/advertMoney/html/collar.html?iframeSrc=https%3A%2F%2Fpro.m.jd.com%2Fmall%2Factive%2F3xdpa5DWqPDhqZgf9qX1kkfixyES%2Findex.html%3Ffrom%3Dkgg&adId=09999999&bussource='); function task3() { console.log('看广告领京东豆'); var runner = setInterval(() => { var btn = document.getElementById('idButton'); if (btn.innerHTML === '同一广告不能重复领取!') { clearInterval(runner); console.log('看广告领京东豆: 已完成'); return; } if (btn && btn.getAttribute('class') === 'button') { btn.click(); clearInterval(runner); console.log('查看广告领豆: 完成'); } else { console.log('查看广告领豆: 未有可领取按钮'); } }, 1000); } // 注册(不可用)任务4 _task.reg('赚钱签到', 'task4', 'https://jddx.jd.com/m/jddnew/money/index.html?from=jrmd'); function task4() { console.log('赚钱签到'); var p = document.getElementsByClassName('item-content'); for (var i=0; i<p.length; i++) { var className = p[i].childNodes[0].getAttribute('class'); if ('item-icon today done' === className) { console.log('赚钱签到: 已签到'); } else if (className.indexOf(' today ') >= 0) { p[i].click(); console.log('赚钱签到:签到完成'); // TODO 关闭奖励 } } // 领取每日任务 console.log('领取赚钱任务: 开始'); var btns = document.getElementsByClassName('listItem-jingdou item'); var hasTaskBtn = false; for (var j=0; j<btns.length; j++) { var btnHtml = btns[j].innerHTML; // 只领取一个京东豆的任务 if (btnHtml.indexOf('去浏览') > 0 && btnHtml.indexOf('class="num">+1</span>') > 0) { hasTaskBtn = true; btns[j].click(); } else if (btnHtml.indexOf('领取任务') > 0 && btnHtml.indexOf('class="num">+1</span>') > 0) { hasTaskBtn = true; btns[j].click(); } } if (!hasTaskBtn) { console.log('当前页没有任务领取按钮'); } else { window.location.reload(); } console.log('领取赚钱任务: 完成'); } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址