您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
去除手机版 6 分钟限制,添加网页跳转
当前为
// ==UserScript== // @name 哔哩哔哩去除 6 分钟限制及 APP 下载 // @namespace http://tampermonkey.net/ // @version 0.7.0 // @description 去除手机版 6 分钟限制,添加网页跳转 // @author sl00p // @match https://m.bilibili.com/* // @grant none // @run-at document-end // ==/UserScript== (function() { 'use strict'; function httpReq(url, callBack) { let xHttp = new XMLHttpRequest(); xHttp.onreadystatechange = function () { if(this.readyState === 4 && this.status === 200) { callBack(xHttp.responseText); } }; xHttp.open("Get", url, true); xHttp.send(); } // inject wechat cookie (function injectCookie() { if(window.localStorage && window.localStorage.getItem("window.bsource") !== "wechat") { window.localStorage.setItem("window.bsource", "wechat"); } if(document.cookie.indexOf("wechat") === -1) { document.cookie = "bsource=wechat"; } })(); let lastRelateUrl = ""; let relateVideoInterVal; let ownerInterval; let relateEndVideoInterval; let spaceVideoInterVal; setInterval(function () { let relateUrl = ""; let url = document.location.href.split("/"); let vid = url[url.length - 1]; if(vid.length <= 0) { return } if (url.indexOf("video") !== -1) { if(vid.indexOf("av") !== -1) { relateUrl = "https://api.bilibili.com/x/web-interface/archive/related?from=h5&aid=" + /\d+/g.exec(vid)[0] + "&context="; } else { relateUrl = "https://api.bilibili.com/x/web-interface/archive/related?bvid=" + vid; } } else if (url.indexOf("space") !== -1) { let mid = vid.split("?")[0]; relateUrl = "https://api.bilibili.com/x/space/arc/search?pn=1&ps=100&order=click&keyword=&mid=" + mid; } else { return } if(relateUrl.length > 0 && relateUrl !== lastRelateUrl) { lastRelateUrl = relateUrl; clearInterval(relateVideoInterVal); clearInterval(spaceVideoInterVal); clearInterval(ownerInterval); clearInterval(relateEndVideoInterval); httpReq(relateUrl, function (res) { let data = JSON.parse(res).data; // parse relate video path relateVideoInterVal = setInterval(function() { let nodes = document.getElementsByClassName("v-card-toapp"); if (nodes !== undefined) { for(let i = 0; i < nodes.length; ++i) { for(let j = 0; j < data.length; ++j) { let ownerNameApp = nodes[i].getElementsByClassName('open-app'); let title = nodes[i].getElementsByClassName('title'); if(title[0].textContent === data[j].title) { if(ownerNameApp && ownerNameApp.length > 0) { ownerNameApp[0].innerText = data[j].owner.name; } title[0].innerHTML="<p><a href=\"" + data[j].bvid + "\" style=\"color:blue\">" + data[j].title + "</a></p>"; if (nodes[i] && nodes[i].length > 0) { nodes[i].onclick = function() { return false }; } } } } } }, 500); // parse space video patch spaceVideoInterVal = setInterval(function() { let video; let nodes = document.getElementsByClassName("title text-overflow-1 text-box"); if(data && data.list && data.list.vlist) { video = data.list.vlist; } else { return; }; if (nodes !== undefined) { for(let i = 0; i < nodes.length; ++i) { for(let j = 0; j < video.length; ++j) { if(nodes[i].textContent === video[j].title) { nodes[i].innerHTML="<p><a href=\"\/video\/" + video[j].bvid + "\" style=\"color:blue\">" + video[j].title + "</a></p>"; if (nodes[i]) { nodes[i].onclick = function() { return false }; } } } } } }, 500); // parse owner name and remove app download tip ownerInterval = setInterval(function() { let nodeList = ["m-video-openapp", "openapp", "m-video2-openapp", "m-video2-float-openapp", "open-app-btn m-nav-openapp", "m-related-openapp report-scroll-module", "open-app-btn m-video-main-openapp visible-open-app-btn", "player-mobile-control-btn player-mobile-control-btn-callapp player-mobile-control-btn-speed"]; for(let i = 0; i < nodeList.length; ++i) { if(document.getElementsByClassName(nodeList[i]).length > 0) { document.getElementsByClassName(nodeList[i])[0].remove(); } } }, 500); // parse end relate video relateEndVideoInterval = setInterval(function() { let relateVideo = document.getElementsByClassName("player-mobile-ending-panel-title"); let app = document.getElementsByClassName("player-mobile-ending-panel-button"); if(relateVideo !== undefined && relateVideo.length > 0) { for(let i = 0; i < data.length; ++i) { if(relateVideo[0].textContent === data[i].title) { relateVideo[0].innerHTML="<p><a href=\"" + data[i].bvid + "\" style=\"color:blue\">" + data[i].title + "</a></p>"; if(app !== undefined && app.length > 0) { app[0].innerText = data[i].owner.name; } } } } }, 500); }) } }, 500); })();