Greasy Fork is available in English.

熊猫TV自动领取竹子

自动领取熊猫TV在线竹子奖励

// ==UserScript==
// @name         熊猫TV自动领取竹子
// @namespace    https://greasyfork.org/zh-CN/scripts/369898
// @version      1.7.2
// @description  自动领取熊猫TV在线竹子奖励
// @author       Onsxsen
// @match        https://www.panda.tv/*
// @grant        none
// ==/UserScript==
//仅支持领取竹子不需要验证码的用户
//增加浏览器通知功能(暂未具体测试是否有BUG,因为我更新完之后我的账号已经领完了[doge])
(function() {
    'use strict';
    //声明通知函数
    var Noti ,bamboo;
    //Noti = false;
    function showMsg (id){
        if (Noti === undefined){
            window.clearInterval(Time1);
            console.log("清除定时器");
            return
        }
        Noti = false;
        if(id === '4') {
            showMsgNotification("当日竹子领取完毕","本次领取 " + (getbamboo() - bamboo) + " 竹子,当前竹子为 " + getbamboo());
            window.clearInterval(Time1);
            console.log("清除定时器");
        } else{
            showMsgNotification("自动领取竹子成功","本次领取 " + (getbamboo() - bamboo) + " 竹子,当前竹子为 " + getbamboo());
        }
    }
    //声明检测函数
    window.GetText = function (){
        var p = $('p.room-task-timer');
        if(p){
            //检测当前标题
            if(p.text() === '可领取'){
                Click();
                Noti = true;
            } else if (p.text() === '已领完'){
                showMsg('4');
            } else {
                if(Noti === true){
                    showMsg('0');
                }
            }
        }
    }
    //构造获取当前竹子数量函数
    function getbamboo(){
        var span = $('span.sidebar-userinfo-bamboo-num');
        if(span){
            return span.text();
        }
        return 0;
    }
    //声明领取程序
    function Click () {
        //获取领取的元素
        var li = $('li.room-task-item-2');
        if(li){
            //点击第一个元素
            bamboo = getbamboo();
            li[0].click();
        }
    }
    //构造通知函数
    function showMsgNotification(title, msg) {
        var Notification = window.Notification || window.mozNotification || window.webkitNotification;

        if(Notification) {//支持桌面通知
            if(Notification.permission === "granted") {//已经允许通知
                var instance = new Notification(title, {
                    body: msg,
                    icon: "https://i.h2.pdim.gs/3459966f6e12c3f61e596278e5af4b54.png",
                });

                instance.onclick = function() {
                    instance.close();
                };
                instance.onerror = function() {
                };
                instance.onshow = function() {
                    window.setTimeout(instance.close.bind(instance), 5000);
                };
                instance.onclose = function() {
                };
            }else {//第一次询问或已经禁止通知(如果用户之前已经禁止显示通知,那么浏览器不会再次询问用户的意见,Notification.requestPermission()方法无效)
                Notification.requestPermission(function(status) {
                    if (status === "granted") {//用户允许
                        var instance = new Notification(title, {
                            body: msg,
                            icon: "https://i.h2.pdim.gs/3459966f6e12c3f61e596278e5af4b54.png"
                        });

                        instance.onclick = function() {
                            // Something to do
                        };
                        instance.onerror = function() {
                            // Something to do
                        };
                        instance.onshow = function() {
                            // Something to do
                            window.setTimeout(instance.close.bind(instance), 5000);
                        };
                        instance.onclose = function() {
                            // Something to do
                        };
                    }else {//用户禁止
                        return false
                    }
                });
            }
        }

    }
    //设置一个定时器,一秒执行一次
    var Time1 =  window.setInterval('GetText()',1000);//每隔6000毫秒执行一次testFunction()函数,执行无数次。
})();