V2EX增强插件

1.回复标记楼主ID 2.每天打开V2EX网站任意页面时自动领取签到的登陆奖励

当前为 2015-10-17 提交的版本,查看 最新版本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name                        V2EX增强插件
// @description         1.回复标记楼主ID 2.每天打开V2EX网站任意页面时自动领取签到的登陆奖励
// @namespace   yfmx746qpx8vhhmrgzt9s4cijmejj3tn
// @icon                        http://ww1.sinaimg.cn/large/4ec98f50jw1e85azvlnh9j206y06y3ye.jpg
// @author                      me
// @include        http*://*.v2ex.com/*
// @include        http*://v2ex.com/*
// @version                     2015.10.16
// @grant        none
// ==/UserScript==

//2015.10.16 新增在回复中标记楼主
//2015.03.22 尝试修正未知原因情况下导致的签到失败。
//2015.02.07 解决JQuery库在某种情况可能会无法载入
//2014.10.07 某种情况下会产生cookie重复赋值,增加清理补丁。
//2014.10.06 cookie信息过期时间改为3天

//签到 
var load, execute, loadAndExecute;
load = function(a, b, c) {
        var d;
        d = document.createElement("script"), d.setAttribute("src", a), b != null && d.addEventListener("load", b), c != null && d.addEventListener("error", c), document.body.appendChild(d);
        return d
}, execute = function(a) {
        var b, c;
        typeof a == "function" ? b = "(" + a + ")();" : b = a, c = document.createElement("script"), c.textContent = b, document.body.appendChild(c);
        return c
}, loadAndExecute = function(a, b) {
        return load(a, function() {
                return execute(b)
        })
};
 
loadAndExecute("//lib.sinaapp.com/js/jquery/2.0/jquery.min.js", function() {
        if ( document.getElementById("money") && document.getElementById("money").getElementsByTagName("a")[0].href.indexOf("/balance") != -1 && document.body.innerHTML.indexOf(";<\/span> 创建新回复<\/div>") == -1 ) {
                var uid=document.getElementById("Rightbar").getElementsByTagName("a")[0].href.split("/member/")[1];//用户名
                var dd = new Date(); dd.setDate(dd.getDate()+3);var dateexp = dd.toGMTString(); //cookie过期时间
                var dateinfo=new Date().getUTCDate();//获得GMT时间今天几号
				var cookiestr="IDINFO=:" + uid + ":" + dateinfo + ":";
                var daily = $('input[id="q"]');
                if ( document.cookie.split("IDINFO=").length>2 && location.href.split("/").length>4 ) document.cookie = "IDINFO" + "=;expires=" + new Date().toGMTString();  //清理非/的cookie
				if (daily.length && document.cookie.indexOf(cookiestr) == -1 ) {
                        $.ajax({url:"/"})
						daily.val("正在检测每日签到状态...");
                        $.ajax({
                                url: "/mission/daily",
                                success: function(data) {
                                        var awards = $(data).find('input[value^="领取"]');
                                        if (awards.length) {
                                                // daily.val("正在" + awards.attr("value") + "...");
                                                daily.val("正在领取今日的登录奖励......");
                                                $.ajax({
                                                        url: awards.attr('onclick').match(/(?=\/).+?(?=\')/),
                                                        success: function(data) {
                                                                daily.val("正在提交...");
                                                                var days=data.split("已连续登")[1].split(" ")[1];
                                                                if ( $('a[href="/mission/daily"]').length==1 ) {$('a[href="/mission/daily"]').parent().parent().fadeOut(3000)}
                                                                $.ajax({
                                                                        url: "/balance",
                                                                        success: function(data) {
                                                                                function p(s) {return s < 10 ? '0' + s: s;} //自动补0
																				var date2="" + new Date().getUTCFullYear() + p(new Date().getUTCMonth()+1) +p(new Date().getUTCDate())
																				if (data.indexOf(date2+" 的每日登录奖励")!="-1") {
                                                                                        daily.val( "已连续领取" + days + "天,本次领到" + data.split("每日登录")[2].split(" ")[1] + "铜币" );
                                                                                        document.cookie = cookiestr + ";expires=" + dateexp + ";path=/;";
                                                                                } else {
                                                                                        daily.val( "自动领取遇到意外,你可以试试手动领。" );
                                                                                }
                                                                        }
                                                                })
                                                        },
                                                        error: function() {
                                                                daily.val("网络异常 :(");
                                                        }
                                                });
                                        }else{
                                                if (data.indexOf("已领取") != -1) {
                                                        daily.val("今日奖励领取过了");
                                                        document.cookie = cookiestr + ";expires=" + dateexp + ";path=/;";
                                                } else {
                                                        daily.val("无法辩识领奖按钮 :("); 
                                                }
 
                                        }
                                },
                                error: function() {
                                        daily.val("请手动领取今日的登录奖励!");
                                }
                        });
                } else {
                        //console.log("");
                }
        }
});

//标记楼主
if (location.href.indexOf(".com/t/") != -1) {
	var lzname=document.getElementById("Main").getElementsByClassName("avatar")[0].parentNode.href.split("/member/")[1]
	all_elem = document.getElementsByClassName("dark")
	for(var i=0; i<all_elem.length; i++) { 
		if (all_elem[i].innerHTML == lzname){
			all_elem[i].innerHTML += " <font color=green>[楼主]</font>"
			}
	}
}