Greasy Fork is available in English.
网站右侧显示签到UI, 无需跳转直接签到成功
当前为
// ==UserScript==
// @name 一个草率的V2EX右侧一键签到UI
// @namespace http://tampermonkey.net/
// @version 1.0
// @description 网站右侧显示签到UI, 无需跳转直接签到成功
// @author echo
// @match *://*.v2ex.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=v2ex.com
// @grant none
// @require https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js
// @license GNU GPLv3
// ==/UserScript==
(function () {
'use strict';
$(function () {
let xhr, div;
xhr = new XMLHttpRequest();
xhr.onload = function (e) {
let cnt = new RegExp("<body>.*<\/body>", "is").exec(xhr.response);
div = document.createElement('div');
div.innerHTML = cnt;
let signin = div.querySelector('.site-nav .tools a[href="/signin"]');
if (null != signin) return;
if (window.location.pathname == '/mission/daily') return;
let position = $('#Rightbar .box:eq(0) .cell:eq(2)');
if (position == null) return;
let code = 75136;
let url = "";
let before = { txt: '签   到', c1: '#9EEB80', c2: '#90CC78' };
let after = { txt: '今日已签到', c1: '#EBA380', c2: '#EBA380' };
let bar = $(`<div class="cell" style="">
<div cellpadding="0" cellspacing="0" border="0" width="100%" style="text-shadow:0.5px 0.5px 2px #fff;background-color:#ffffffff;padding: 4px;text-align: center;"><a href="#" style="
color:#666;
font-weight:bold;
display: block;
width: 100%;
height: 100%;
text-decoration: none;
user-select:none
"></a>
</div>
</div>`);
let aFather = bar.children();
let a = aFather.children();
position.after(bar);
xhr = new XMLHttpRequest();
xhr.onload = function (e) {
let cnt = new RegExp("<body>.*<\/body>", "is").exec(xhr.response);
div.innerHTML = cnt;
let btn = div.querySelector('#Main input');
if (btn == null || btn.value == "查看我的账户余额") { refresh(after); stopA(); return; } else { refresh(before); }
let txt = btn.getAttribute('onclick');
code = new RegExp("(?<=once=)\\d{5}").exec(txt)[0];
url = `/mission/daily/redeem?once=${code}`;
a.one('click', function (e) { $.get(url, function (rs) { refresh(after) }); setTimeout(() => { stopA(); }, 10); });
}
xhr.open('get', '/mission/daily');
xhr.send();
}
xhr.open('get', 'https://www.v2ex.com/');
xhr.send();
function refresh(signin) {
a.html(signin.txt);
aFather.css('backgroundColor', signin.c1);
aFather.hover(function () { $(this).css('backgroundColor', signin.c2) }, function () { $(this).css('backgroundColor', signin.c1) });
}
function stopA() {
a.attr('href', '/mission/daily');
}
});
})();