Greasy Fork is available in English.
对b23.tv/xxxx这样的链接,直接获取到真实地址的标题,以免用户点进去自己不想看到的内容
当前为
// ==UserScript==
// @name LinkCheatGuardian_BiliBili
// @namespace http://tampermonkey.net/
// @version 0.4
// @description 对b23.tv/xxxx这样的链接,直接获取到真实地址的标题,以免用户点进去自己不想看到的内容
// @author wlx0079
// @match *://www.bilibili.com/video/*
// @icon https://i0.hdslb.com/bfs/album/5b628d8d94bbf2f80f8006f1f6865a3f977e51d2.jpg
// @grant GM_xmlhttpRequest
// ==/UserScript==
//Update: 0801-01:42 只采集/video,采用hashmap缓存策略减少访问量,时间间隔调大,访问太多要验证码的==
//Update: 0801-11:35 采用异步更新的方式,一个较长间隔请求未访问的网址,一个较短间隔从内存中更新内容
var hashmap = new Map()
function getTitle(text){
var myReg = new RegExp("<title.*title>");
var nt = text.match(myReg)[0];
var title = nt.split("<")[1];
title = title.split(">")[1];
title = title.split("_哔哩哔哩_bilibili")[0]
return title;
}
function httpGet(theUrl,theSpan)
{
GM_xmlhttpRequest({
url: theUrl,
method :"GET",
onload:function(xhr){
var name = getTitle(xhr.responseText)
if(!hashmap.has(theSpan.innerHTML)){
var newContent = theSpan.innerHTML + '<p style="font-family:verdana; color:rgb(70,60,220); font-weight:800; font-size:12pt">#诈骗检测:'+name+"</p>"
hashmap.set(theSpan.innerHTML,newContent)
hashmap.set(newContent,"$")
theSpan.innerHTML = newContent
}
}
});
}
function getRequest(){
var links = document.getElementsByTagName("a")
for (var i = 0 ; i < links.length ; ++i){
var url = links[i].href;
if (url.search("b23.tv") != -1 ){
if(hashmap.has(links[i].innerHTML)){
var content = hashmap.get(links[i].innerHTML);
if (content != "$"){
links[i].innerHTML = content;
}
}
else
{
httpGet(url,links[i])
}
}
}
}
function Alter(){
var links = document.getElementsByTagName("a")
for (var i = 0 ; i < links.length ; ++i){
var url = links[i].href;
if (url.search("b23.tv") != -1 ){
if(hashmap.has(links[i].innerHTML)){
var content = hashmap.get(links[i].innerHTML);
if (content != "$"){
links[i].innerHTML = content;
}
}
}
}
}
setInterval(getRequest,2500)
setInterval(Alter,1000)