Greasy Fork is available in English.

♦bilibili自动点赞 哔哩哔哩自动点赞♦

小学三年级水平的自动点赞脚本,在进入视频播放页面后等待一定时间自动点赞(适合那些不想白嫖但又懒得点赞的人)

// ==UserScript==
// @name         ♦bilibili自动点赞 哔哩哔哩自动点赞♦
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  小学三年级水平的自动点赞脚本,在进入视频播放页面后等待一定时间自动点赞(适合那些不想白嫖但又懒得点赞的人)
// @author       Nobody
// @match        https://www.bilibili.com/video/*
// @grant        none
// ==/UserScript==
//--------------------------------------------------------------------------------------------
//进入页面以后等待的毫秒数,一秒等于一千毫秒,建议不要小于三秒(页面还没加载完就点赞会失败)
let waittime = 10000;
//--------------------------------------------------------------------------------------------
//第一次点赞失败后再次等待的毫秒数,然后再次尝试点赞
let errwaittime = 10000;
//--------------------------------------------------------------------------------------------
//每一轮循环等待的毫秒数,用于检测同页面切换视频
let looptime = 1000;
//--------------------------------------------------------------------------------------------
(function () {
    let url = null;
    //设定一个循环执行,因为连播不会重新加载页面
    setInterval(function () {
        // 页面url发生变化,疑似切换了视频
        if (url != window.location.href) {
            url = window.location.href;
            setTimeout(function () {
                //尝试使用class选择器获取点赞按钮
                let iflike = document.querySelector("div.video-like");
                //如果获得了未点赞状态的按钮,说明没有点过赞。
                if (iflike && !iflike.getAttribute('class').includes('on')) {
                    //尝试使用模拟点击点赞按钮。
                    try {
                        //点一下。
                        iflike.click();
                        //如果点赞没有成功,八成是页面还没载入。
                    } catch (err) {
                        //设定一个n秒的等待,然后再次尝试点赞
                        setTimeout(function () {
                            try {
                                //点一下。
                                iflike.click();
                            } catch {
                                //如果点赞还没有成功,就不管了,不骚扰客户
                            }
                        }, errwaittime);
                    }
                }
            }, waittime);
        }
    }, looptime)
})();