Greasy Fork镜像 支持简体中文。

LinkCheatGuardian_BiliBili

对b23.tv/xxxx这样的链接,直接获取到真实地址的标题,以免用户点进去自己不想看到的内容

  1. // ==UserScript==
  2. // @name LinkCheatGuardian_BiliBili
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.6
  5. // @description 对b23.tv/xxxx这样的链接,直接获取到真实地址的标题,以免用户点进去自己不想看到的内容
  6. // @author wlx0079
  7. // @match *://www.bilibili.com/video/*
  8. // @icon https://i0.hdslb.com/bfs/album/5b628d8d94bbf2f80f8006f1f6865a3f977e51d2.jpg
  9. // @grant GM_xmlhttpRequest
  10. // @grant GM_setValue
  11. // @grant GM_getValue
  12. // ==/UserScript==
  13.  
  14. //Update: 0801-01:42 只采集/video,采用hashmap缓存策略减少访问量,时间间隔调大,访问太多要验证码的==
  15. //Update: 0801-11:35 采用异步更新的方式,一个较长间隔请求未访问的网址,一个较短间隔从内存中更新内容
  16. //Update: 0802-00:14 添加播放量显示
  17. //Update: 0806-19:10 使用TamperMonkey自带的levelDB进行存储,提高了访问速度和请求量,减少被验证码的可能性,间接性避免了有大量锻炼时无法正常显示的bug,优化显示
  18.  
  19. var hashmap = new Map()
  20.  
  21. function getTitle(text){
  22. var myReg = new RegExp("<title.*title>");
  23. var title
  24. try
  25. {
  26. var nt = text.match(myReg)[0];
  27. title = nt.split("<")[1];
  28. title = title.split(">")[1];
  29. title = title.split("_哔哩哔哩_bilibili")[0]
  30. } catch( error){
  31. return "@"
  32. }
  33. return title;
  34. }
  35.  
  36. function getPlayTimes(text){
  37. var myReg = new RegExp("\"总播放数[0-9]*\"");
  38. var title = text.match(myReg)[0];
  39. return title;
  40. }
  41.  
  42.  
  43. function httpGet(theUrl,theSpan)
  44. {
  45. GM_xmlhttpRequest({
  46. url: theUrl,
  47. method :"GET",
  48. onload:function(xhr){
  49. if(!hashmap.has(theSpan.innerHTML)){
  50. var name = getTitle(xhr.responseText)
  51. if(name == "@"){
  52. return
  53. }
  54. var playtimes = getPlayTimes(xhr.responseText)
  55. var newContent =
  56. theSpan.innerHTML + "<p>"+
  57. "<vi style=\"font-family:verdana; color:rgb(70,60,220); font-weight:800; font-size:10pt\"> #诈骗检测:"+ name +"</vi>" +
  58. "<vi style=\"font-family:verdana; color:rgb(170,60,220); font-weight:800; font-size:8pt\">#"+ playtimes+"</vi>" +
  59. "</p>" ;
  60. GM_setValue(theSpan.innerHTML,newContent)
  61. GM_setValue(newContent,"success")
  62. theSpan.innerHTML = newContent
  63. }
  64. }
  65. });
  66. }
  67.  
  68.  
  69. function getRequest(){
  70. var links = document.getElementsByTagName("a")
  71. for (var i = 0 ; i < links.length ; ++i){
  72. var url = links[i].href;
  73. if (url.search("b23.tv") != -1 ){
  74. var try_content = GM_getValue(links[i].innerHTML, "fail")
  75. if(try_content == "fail" ){
  76. httpGet(url,links[i])
  77. }
  78. }
  79. }
  80. }
  81.  
  82. function Alter(){
  83. var links = document.getElementsByTagName("a")
  84. for (var i = 0 ; i < links.length ; ++i){
  85. var url = links[i].href;
  86. if (url.search("b23.tv") != -1 ){
  87. var try_content = GM_getValue(links[i].innerHTML, "fail")
  88. if(try_content != "fail" && try_content != "success"){
  89. links[i].innerHTML = try_content
  90. }
  91. }
  92. }
  93. }
  94.  
  95.  
  96.  
  97.  
  98. setInterval(getRequest,2500)
  99. setInterval(Alter,500)
  100.  
  101.  
  102.  

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址