熊猫TV自动领取竹子

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

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

// ==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()函数,执行无数次。
})();