Greasy Fork is available in English.
Discuz论坛插件 BUX广告点击赚积分 自动
// ==UserScript==
// @name Discuz BUX广告点击赚积分
// @namespace http://tampermonkey.net/
// @version 0.7
// @description Discuz论坛插件 BUX广告点击赚积分 自动
// @author lvweicheng
// @match *://*/plugin.php?id=jnbux
// @icon https://ae01.alicdn.com/kf/U0b4f37bdfa1c41a68fdf6a63a973a4427.jpg
// @require https://cdn.bootcdn.net/ajax/libs/jquery/3.1.0/jquery.min.js
// @require https://cdn.bootcdn.net/ajax/libs/layer/3.3.0/layer.min.js
// @grant GM.openInTab
// ==/UserScript==
(function() {
'use strict';
$(document.body).append(`<link href="https://cdn.bootcdn.net/ajax/libs/layer/3.3.0/theme/default/layer.min.css" rel="stylesheet">`);
run();
function getUserId() {
let url = $(".vwmy a").attr('href');
let pattern = /(\d){1,}/;
return url.match(pattern) | url.match(pattern)[0];
}
function getTasks() {
let html = $("html").html();
let pattern = /window.open(.){1,}/g;
let tasks = [];
if (html.match(pattern)){
tasks = html.match(pattern);
}
let returns = [];
let features = "height=500, width=500, top=100, left=100, location=no";
for (const tasksKey in tasks) {
pattern = /plugin.php(.){1,}(\d)/;
let url = tasks[tasksKey].match(pattern)[0];
let jsStr = "window.open('"+ url +"', '', '"+ features +"')"
returns.push(jsStr);
// returns.push(tasks[tasksKey].replace('newwindow', '').replace('""', "'" + features + "'"));
}
return returns;
}
function msg(msg, icon = 1, taskId = 999) {
layer.msg(msg, {
offset: 'rt' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
,id: taskId //防止重复弹出
,shade: 0 //不显示遮罩
,icon: icon
});
}
function checkJoin() {
let flag = document.evaluate("//ul[@class='xl xl2 cl']/li[1]/a/font/b/text()").iterateNext();
return !(flag == null);
}
function run(res) {
console.log(parent)
let id = getUserId();
if (!id){
msg('还没有登录', 5);
return;
}
if (!checkJoin()){
msg('还没有加入', 5);
return;
}
let tasks = getTasks();
if (tasks.length == 0){
msg('今日任务已完成');
return;
}
let promise = Promise.resolve();
let runCount = 0;
tasks.forEach((task, index) => {
let pattern = /clickid=\d{1,}/;
let taskId = task.match(pattern)[0].split('=')[1];
promise = promise.then(() => {
return new Promise((resolve => {
let newWindow = eval(task);
if (newWindow){
setTimeout(()=>{
let timer = setInterval(() => {
if (!newWindow.document.getElementById('timer')){
msg('任务id:' + taskId + '执行成功', 1, taskId);
clearInterval(timer);
resolve(newWindow);
}
}, 1000);
},5000);
}
}));
});
promise.then((res) => {
res.close();
runCount += 1;
if (runCount >= tasks.length){
window.location.reload();
}
});
});
}
})();