Bilibili直播小红包自动兑换|2018春节活动进击的汪酱

定时获取奖池情况,自动兑换物品

当前为 2018-01-21 提交的版本,查看 最新版本

// ==UserScript==
// @name         Bilibili直播小红包自动兑换|2018春节活动进击的汪酱
// @namespace    https://gf.qytechs.cn/users/155548
// @version      0.2
// @description  定时获取奖池情况,自动兑换物品
// @match        http://api.live.bilibili.com/exchange
// @require		 https://code.jquery.com/jquery-3.2.1.min.js
// @icon		 https://static.hdslb.com/images/favicon.ico
// @grant        GM_notification
// ==/UserScript==

(function() {
    //不兑换id列表
    var _black_list = ["gift-113","danmu-gold","stuff-3"];

    var title = new RegExp('title-'), title_max = 1001;//头衔的最大兑换红包单价
    var gift = new RegExp('gift-'), gift_max = 500;//礼物的最大兑换红包单价(常见灯笼15喵娘233B坷拉450)
    var stuff = new RegExp('stuff-'), stuff_max = 500;//经验石的最大兑换红包单价(原石15曜石233贤者1888)
    var all_max = 5;//所有物品的兑换最大数量(为保证能够抢到,一次只兑换一个(因为写多了一个也换不到),分多次同时兑换。如果兑换太过频繁有封禁IP的风险,请不要填写过大的上限数量)

    //刷新间隔(秒),默认1秒获取一次当前奖池情况
    var timer = 1;

    //刷新奖池的浏览器右下角通知,1为通知,其他值则不通知
    var notice = 1;

    //看到这里就可以了,没有需要改动的了



    var _owned_badge = [];

    $.get('http://api.live.bilibili.com/i/api/ajaxTitleInfo?normal=0&special=0&keyword=&had=1&page=1&pageSize=130',function(data){
        $.each(data.data.list,function(i,e){
            _owned_badge.push(e.id+'');
        });
    });
    var info;
    var times = 0, dif_times = 0, sub_total = 0, success_count = 0, red_bag_num = '-', _extra = '';
    $('title').html('自动换红包');
    $('.error-container').html('<input class=_refresh value="开始" type=button /> 已获取 <font style="font-size:18px;" class=_times>'+times+'</font> 次。 期间奖池刷新了 <font style="font-size:18px;" class=dif_times>'+dif_times+'</font> 次。 提交了 <font style="font-size:18px;" class=sub_total>'+sub_total+'</font> 次兑换请求。 其中成功兑换了 <font style="font-size:18px;color:#0eff0a" class=success_count>'+success_count+'</font> 次。 剩余红包 <font style="font-size:18px;color:#ff0a0a" class=red_bag_num>'+red_bag_num+'</font> 个<p>-------------------------------------------------</p><p>当前奖池(第<font class="_round"> - </font>轮):</p><p style="color:#ff2ee5" class=_info></p><p>-------------------------------------------------</p><p>兑换记录:</p>');
    $('.error-container').on('click','._refresh',function(){
        window.t1 = self.setInterval(function(){_start();},timer*1000);
        $(this).removeClass('_refresh').addClass('_stop');
        $(this).val('停止');
    });
    $('.error-container').on('click','._stop',function(){
        window.clearInterval(window.t1);
        $(this).removeClass('_stop').addClass('_refresh');
        $(this).val('继续');
    });
    function _start(){
        $.get('http://api.live.bilibili.com/activity/v1/NewSpring/redBagPool?_='+Date.now(),function(data){
            info = '';times++;
            $.each(data.data.pool_list,function(i,e){
                _extra='';
                if($.inArray(e.award_id,_black_list) < 0){
                    if(title.test(e.award_id)){
                        if(e.price < title_max){
                            var title_id = e.award_id.replace(title,'');
                            if($.inArray(title_id,_owned_badge) < 0){
                                _extra = '[未拥有]';
                                if(e.stock_num > 0){submit(e.award_id,1,e.award_name,1);}
                            }else{
                                _extra = '[已拥有]';
                            }
                        }
                    }else if(gift.test(e.award_id)){
                        if(e.price < gift_max){
                            var n = Math.min(e.stock_num,e.exchange_limit,e.user_exchange_count,all_max);
                            if(e.stock_num > 0){submit(e.award_id,n,e.award_name,1);}
                        }

                    }else if(stuff.test(e.award_id)){
                        if(e.price < stuff_max){
                            var n = Math.min(e.stock_num,e.exchange_limit,e.user_exchange_count,all_max);
                            if(e.stock_num > 0){submit(e.award_id,n,e.award_name,1);}
                        }
                    }
                }
                info += '(剩余:'+e.stock_num+')'+e.award_name+_extra+'<br>';
            });
            $('._times').html(times);
            if($('._info').html()!=info && $('._info').html()!=''){
                dif_times++;$('.dif_times').html(dif_times);
                if(notice==1){
                    GM_notification('奖池刷新了,快去看看抢到了什么吧!','小红包自动兑换提醒','https://static.hdslb.com/images/favicon.ico');
                }
                $('.error-container').append('['+h+':'+m+':'+s+'] <p style="color:#0a83ff">检测到奖池刷新!</p>');
            }
            $('._info').html(info);
            $('.red_bag_num').html(data.data.red_bag_num);
            $('._round').html(data.data.round);
        });
    }

    function submit(a,b,c,d){
        var now=new Date(), h=now.getHours(), m=now.getMinutes(), s=now.getSeconds();
        $('.error-container').append('<p>['+h+':'+m+':'+s+'] 发起兑换请求,'+c+'(ID:'+a+') x '+d+'个(根据可兑换数量共'+b+'次请求)</p>');
        sub_total++;
        $('.sub_total').html(sub_total);
        for(var i=0;i<b;i++){
            $.get('http://api.live.bilibili.com/activity/v1/NewSpring/redBagExchange?award_id='+a+'&exchange_num='+d,function(data){
                if(data.code==0){
                    $('.error-container').append('<p style="color:#0eff0a">['+h+':'+m+':'+s+'] 成功兑换'+c+'(ID:'+a+')('+d+'个) 剩余'+data.data.red_bag_num+'红包</p>');
                    success_count++;
                    $('.success_count').html(success_count);
                    if(title.test(a)){
                        var z = e.award_id.replace(title,'');
                        _owned_badge.push(z+'');
                    }
                }else{
                    $('.error-container').append('['+h+':'+m+':'+s+'] <p style="color:#ff860a">'+data.message+'('+c+'(ID:'+a+'))</p>');
                }
            });
        }
    }
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址