Greasy Fork is available in English.

贴吧自动领 T豆

贴吧挂机自动领 T 豆

Ajankohdalta 21.3.2014. Katso uusin versio.

// ==UserScript==
// @name         贴吧自动领 T豆
// @namespace    http://jixun.org/
// @version      0.1.0.8
// @description  贴吧挂机自动领 T 豆
// @include      http://tieba.baidu.com/*
// @copyright    2013+, Jixun
// @run-at       document-end
// ==/UserScript==



function wl (a) { console.log ('[挂T豆] %s', a) }
wl ('v1.0.1.8 by Jixun.Moe / Tieba @jixun66');
wl ('准备就绪, 3s 后开始.');

(function () {
    /// 抓取页面上的 jQuery, 反正能用
    var $ = unsafeWindow.$;

    var getTiebaDou = function () {
        wl('获取等待时间…');
        var $timeWr = $('span.time_wrapper'),
            curTime = (function(a){return[parseInt(a[0]),parseInt(a[1])]})($timeWr.text().split(':')),
            bCountdown = $timeWr.hasClass('time_count'),
            waitMs  = (bCountdown ? curTime [1]
                       : (parseInt($('.curren_len .time_point').text()) - curTime[0]) * 60 - curTime [1]) * 1000,
            ranGift = $('.rand_gift');

        if (ranGift.length)
            wl ('自动领取彩蛋! 目测将获得 [' + ranGift.attr('data-field').match(/(\d+)\}$/)[1] + '] T豆..', ranGift.click());
        
        // waitMs === NaN
        if (isNaN(waitMs))
            return wl('全部领完了? 恭喜w');
        
        // $timeWr => 00:00
        // 缓存刷新中, 3s 后重试
        if (0 == (curTime[0] | curTime[1]) && !bCountdown)
            return setTimeout (getTiebaDou, 3000);
        
        wl('开始等待, 时间长度为 [' + waitMs / 1000 + '(+3)] 秒…');
        
        setTimeout (function () {
            // Get! ^^
            wl ('时间到! 开始领豆');
            $('.time_gift').click();
            
            // Wait 7 Sec and start again
            wl ('领取完毕, 7s 后自动检查状态.');
            setTimeout (getTiebaDou, 7000);
        }, 3000 + waitMs); // 3s Delay
    };
    
    var getPaper = function () {
        var timeToWait = 1000 * 
            (parseInt($('#j_tb_paper_countdown_min').text() || 0) * 60
                + parseInt($('#j_tb_paper_countdown_sec').text()) || 0);

        // 不知道会不会超时… 反正挂在那自动领没错的w
        //if (isNaN(timeToWait))
        //    return wl('目测领完了..w?');

        wl ('[贴条] 开始等待, 时间长度为 ' + timeToWait/1000 + '(+3)] 秒…');
        setTimeout (function () {
            // Get! ^^
            wl ('[贴条] 时间到! 开始领取…');
            $('.tb_paper_beg_btn_open').click();
            
            // Wait 7 Sec and start again
            wl ('[贴条] 领取完毕, 7s 后自动检查状态.');
            setTimeout (getPaper, 7000);
        }, 3000 + timeToWait); // 3s Delay
    };

    setTimeout (getPaper, 3000);
    setTimeout (getTiebaDou, 3000);
})();