抢救本家直链

把B站视频简介sm号超链接使用的失效短链域名acg.tv替换为nicovideo

目前為 2024-02-05 提交的版本,檢視 最新版本

// ==UserScript==
// @name         抢救本家直链
// @namespace    http://tampermonkey.net/
// @version      0.1.0
// @description  把B站视频简介sm号超链接使用的失效短链域名acg.tv替换为nicovideo
// @author       永咲みつき
// @match        *.bilibili.com/video/*
// @grant        none
// @run-at       document-end
// @license      GPLv3
// @supportURL   [email protected]
// ==/UserScript==

(function () {
    'use strict';
    const jsName = "抢救本家直链";
    const url_acgtv = /acg.tv\//g;
    const url_nico = "www.nicovideo.jp/watch/";
    const ClassName_desc = "desc-info-text"; //简介的类名
    const ClassName_player = "bpx-player-ctrl-btn-icon"; //播放按钮的类名

    console.log('【', jsName, '】脚本已就绪,等待页面加载中...');
    var setid = setInterval(function(){
        var element1 = document.getElementsByClassName(ClassName_player)
        if(element1 != null){
            console.log('【', jsName, '】脚本执行中...');
            replace(); // 执行超链接替换
            clearInterval(setid); //关闭定时器
        }
    }, 500); // 每隔0.5s检查一次加载状态

    var element2 = document.getElementsByClassName(ClassName_desc);
    function replace() {
        for (var i = 0; i < element2.length; i++) {
            var html = element2[i].innerHTML;
            if (url_acgtv.test(html)) { //匹配acg.tv/字符串,替换为www.nicovideo.jp/watch/
                html = html.replace(url_acgtv, url_nico);
                element2[i].innerHTML = html;
                console.log('【', jsName, '】链接替换成功!');
            }
            else{
                console.log('【', jsName, '】未发现链接。');
            }
        }
    }
})();

//参考:  https://greasyfork.org/zh-CN/scripts/473709-b%E7%AB%99bv%E5%8F%B7%E6%B7%BB%E5%8A%A0%E8%B6%85%E9%93%BE%E6%8E%A5
//        https://scriptcat.org/zh-CN/script-show-page/42/code