Greasy Fork

来自缓存

Greasy Fork is available in English.

B站自动签到

B站自动签到工具

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         B站自动签到
// @namespace    B站自动签到,Bilibili自动签到
// @version      0.6
// @description  B站自动签到工具
// @author       You
// @include      https://www.bilibili.com/*
// @include      https://t.bilibili.com/*
// @include      https://live.bilibili.com/*
// @include      https://www.bilibili.com/video/*
// @icon         https://s4.ax1x.com/2021/12/31/TfQpnS.png
// @grant        none
// ==/UserScript==

(function () {
    let cookie = document.cookie.split(';')//获取cookie
    let time = localStorage.getItem("signInTime")//获取上次签到时间

    function qd() {//签到方法
        fetch("https://api.live.bilibili.com/xlive/web-ucenter/v1/sign/DoSign", {
            method: "GET",//GEt请求
            mode: 'cors',//跨域
            credentials: 'include',//允许携带cookie
            headers: {
                'cookie': cookie,//设置cookie
            }
        }).then(data => data.json())
            .then(response => {
                localStorage.setItem("signInTime", new Date().toDateString())//设置签到的时间戳
                show("签到完成")//显示提示
            })
            .catch(err => {
                show("发生错误",false)
                console.log(err)
            })
    }
    function show(showtext,bool=true) {//签到提示
        let showidv = document.createElement("div")//创建标签
        let icon = bool ? "🎉 " : "🚫 "
        showidv.innerText = icon + showtext
        showidv.style = "background-image: linear-gradient(45deg, rgb(255 186 251), rgb(41 201 255));color:#fff;font-size:20px;position: fixed;top:-104px;right:23px;width: 150px;height:100px;z-index:99999;border-radius: 20px;text-align: center;line-height: 100px;transition:all 0.2s linear;"//设置样式
        document.body.append(showidv)//添加提示到页面上
        setTimeout(() => {
            showidv.style.top = "55px"
        }, 100)
        setTimeout(() => {
            showidv.style.top = "-104px"
        }, 2000)
        setTimeout(() => {
            document.body.removeChild(showidv)
        }, 3000)
    }
    function sameday(t) {//是否同一天
        return t === new Date().toDateString();
    }
    console.log(time)
    if (time) {//如果有时间则判断时间戳是否是当天的时间
        if (!sameday(time)) {//不是同一天就签到
            console.log("今天没有签到过,正在签到")
            qd()//请求签到
        }else{
            console.log("已经签到过");
        }
    } else {//没有时间则没有签到,进行签到,签到完成缓存设置时间戳
        console.log("第一次使用此插件签到,正在签到")
        qd()//请求签到
    }
})();