// ==UserScript== // @name bilibili网页视频简介中的链接可以点击(按行区分) // @namespace http://tampermonkey.net/ // @version 0.5 // @description change black to blue // @author beibeibeibei // @match *.bilibili.com/video/* // @grant none // @require https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js // @downloadURL none // ==/UserScript== (function() { 'use strict'; // Your code here... var $=jQuery.noConflict(); function hide_info(){ $("#v_desc").find(".info").hide(); } function show_info(){ $("#v_desc").find(".info").show(); } function hide_info2(){ $("#v_desc").find(".info2").hide(); } function show_info2(){ $("#v_desc").find(".info2").show(); } function hide_abstract_spread(){ //展开更多 $('[report-id="abstract_spread"]').hide(); $('[report-id="abstract_unspread"]').hide(); } function show_abstract_spread(){ //展开更多 $('[report-id="abstract_spread"]').show(); $('[report-id="abstract_unspread"]').show(); } function new_info2(){ $("#v_desc").find(".info").after('
'); } function splitLines(str) {return str.split(/\r?\n/);} var reg_is_html = /^(https:\/\/|http:\/\/|ftp:\/\/|file:\/\/\/|www.|wap.|bbs.|news.|blog.)[a-z0-9-+&@#/%?=~_|!:,.;]+[a-z0-9-+&@#/%=~_|]$/i; var reg_with_html = /(https:\/\/|http:\/\/|ftp:\/\/|file:\/\/\/|www.|wap.|bbs.|news.|blog.)[a-z0-9-+&@#/%?=~_|!:,.;]+[a-z0-9-+&@#/%=~_|]/i; var reg_BV_a_tags = /BV([a-zA-Z0-9]){10}<\/a>/; var reg_av_a_tags = /av([a-zA-Z0-9])+<\/a>/; var reg_is_com_end = /[a-z0-9]+(.com)/i;//(其乐社区Keylol.com) var reg_is_cn_end = /[a-z0-9]+(.cn)/i;//(其乐社区Keylol.com) var reg_is_space_io_end = /[a-z0-9]+( .io)/i;//(平台:gartic .io) var reg_is_weibo = /微博[:@]{1,2}[\u4e00-\u9fa5a-zA-Z0-9_-]{4,30}/; var part1 = ""; var part2 = ""; var part3 = ""; var part4 = ""; var part5 = ""; var part_link = ""; var part_link2 = ""; var link_color1 = "darkturquoise"; var link_color2 = "palevioletred"; function main(){ add_button(); add_info2(); hide_abstract_spread(); if($(".info2").is(":hidden")){ show_abstract_spread(); } var info_html = $("#v_desc").find(".info").html(); var html_array = splitLines(info_html); $(".l-con").off('DOMNodeInserted',main); $("#v_desc").find(".info2").html(""); $("#v_desc").find(".info2").append(''); for(var i=0;i'); } if (is_html) { else_flag = false; //console.log("is_htm2:"+html_array[i]); $("#v_desc").find(".info2").append('

' + html_array[i] + '

'); } if (with_html && !is_html && !is_BV_a_tags && !is_av_a_tags) { else_flag = false; //console.log("with_h3:"+html_array[i]); part2 = html_array[i].match(reg_with_html)[0]; part_link = part2; part1 = html_array[i].substring(0,html_array[i].indexOf(part2)); part3 = html_array[i].substring(html_array[i].indexOf(part2)+part2.length); $("#v_desc").find(".info2").append('

'+part1+'' + part2 + ''+part3+'

'); } if (is_BV_a_tags && with_html && !is_html) { else_flag = false; //console.log("is_BV_4:"+html_array[i]); $("#v_desc").find(".info2").append('

'+html_array[i]+'

'); $("#v_desc").find(".info2").children("p:last").children("a").attr("class",i); $("#v_desc").find(".info2").children("p:last").attr("class",i); } if (is_av_a_tags && with_html && !is_html) { else_flag = false; //console.log("is_av_5:"+html_array[i]); $("#v_desc").find(".info2").append('

'+html_array[i]+'

'); $("#v_desc").find(".info2").children("p:last").children("a").attr("class",i); $("#v_desc").find(".info2").children("p:last").attr("class",i); } if (is_com_end && !with_html && !is_weibo) { else_flag = false; //console.log("is_com6:"+html_array[i]); part2 = html_array[i].match(reg_is_com_end)[0]; part_link = "http://www." + part2; part1 = html_array[i].substring(0,html_array[i].indexOf(part2)); part3 = html_array[i].substring(html_array[i].indexOf(part2)+part2.length); $("#v_desc").find(".info2").append('

'+part1+'' + part2 + ''+part3+'

'); } if (is_cn_end && !with_html) { else_flag = false; //console.log("is_cn_7:"+html_array[i]); part2 = html_array[i].match(reg_is_cn_end)[0]; part_link = "http://www." + part2; part1 = html_array[i].substring(0,html_array[i].indexOf(part2)); part3 = html_array[i].substring(html_array[i].indexOf(part2)+part2.length); $("#v_desc").find(".info2").append('

'+part1+'' + part2 + ''+part3+'

'); } if (is_space_io_end && !with_html) { else_flag = false; //console.log("is_spa8:"+html_array[i]); part2 = html_array[i].match(reg_is_space_io_end)[0]; part1 = html_array[i].substring(0,html_array[i].indexOf(part2)); part3 = html_array[i].substring(html_array[i].indexOf(part2)+part2.length); part2 = html_array[i].match(reg_is_space_io_end)[0].substr(0,(html_array[i].match(reg_is_space_io_end)[0]).length-4)+".io"; part_link = "http://www." + part2; $("#v_desc").find(".info2").append('

'+part1+'' + part2 + ''+part3+'

'); } if (is_weibo && !is_com_end) { else_flag = false; //console.log("is_wei9:"+html_array[i]); part2 = "@" + html_array[i].match(reg_is_weibo)[0].substring(3); part1 = html_array[i].substring(0,html_array[i].indexOf(part2)); if(html_array[i].match(reg_is_weibo)[0][3] == "@"){ part2 = html_array[i].match(reg_is_weibo)[0].substring(3); part1 = html_array[i].substring(0,html_array[i].indexOf(html_array[i].match(reg_is_weibo)[0].substring(4))).substring(0,html_array[i].substring(0,html_array[i].indexOf(html_array[i].match(reg_is_weibo)[0].substring(4))).length-2); } part3 = html_array[i].substring(html_array[i].indexOf(part2)+part2.length); part_link = "https://s.weibo.com/user?q=" + part2.substring(1);//https://s.weibo.com/user?q=《用户名》 console.log(part1); console.log(part2); console.log(part3); $("#v_desc").find(".info2").append('

'+part1+'' + part2 + ''+part3+'

'); } if (is_weibo && is_com_end) { else_flag = false; //console.log("is_we10:"+html_array[i]); var part_array = [0, html_array[i].match(reg_is_weibo).index, html_array[i].match(reg_is_weibo).index + html_array[i].match(reg_is_weibo)[0].length, html_array[i].match(reg_is_com_end).index, html_array[i].match(reg_is_com_end).index + html_array[i].match(reg_is_com_end)[0].length]; part_array = part_array.sort(function (a, b) { return a - b }); part1 = html_array[i].substring(part_array[0], part_array[1]); part2 = html_array[i].substring(part_array[1], part_array[2]); part3 = html_array[i].substring(part_array[2], part_array[3]); part4 = html_array[i].substring(part_array[3], part_array[4]); part5 = html_array[i].substring(part_array[4]); if (html_array[i].match(reg_is_weibo).index < html_array[i].match(reg_is_com_end).index) { part1 = html_array[i].substring(part_array[0], part_array[1]) + "微博"; part2 = html_array[i].substring(part_array[1], part_array[2]).substring(2); part_link = "https://s.weibo.com/user?q=" + part2.substring(1); part_link2 = "http://www." + part4; $("#v_desc").find(".info2").append('

' + part1 + '' + part2 + '' + part3 + '' + part4 + '' + part5 + '

'); } else { part3 = html_array[i].substring(part_array[2], part_array[3]) + "微博"; part4 = html_array[i].substring(part_array[3], part_array[4]).substring(2); part_link = "https://s.weibo.com/user?q=" + part4.substring(1); part_link2 = "http://www." + part2; $("#v_desc").find(".info2").append('

' + part1 + '' + part2 + '' + part3 + '' + part4 + '' + part5 + '

'); } } if (else_flag && !is_empty && !is_html && !is_BV_a_tags && !is_av_a_tags && !with_html && !is_com_end && !is_space_io_end) { //console.log("else_12:"+html_array[i]); $("#v_desc").find(".info2").append('

' + html_array[i] + '

'); } //console.log(i); } var number_repetition_p_tag = 1;//至少出现一次 var first_pos_repetition_p_tag = -1; $("#v_desc").find(".info2").children("p").each(function (i) { if (i > 0) { var p_tag_html = $(this).html(); var this_before = $("#v_desc").find(".info2").children("p:eq(" + (i - 1) + ")"); var before_p_tag_html = this_before.html(); if (p_tag_html == before_p_tag_html || p_tag_html == before_p_tag_html.trim()) { $(this).hide(); number_repetition_p_tag++; if(first_pos_repetition_p_tag == -1){ first_pos_repetition_p_tag = i; } } } }); if(number_repetition_p_tag > 1){ $("#v_desc").find(".info2").children("p:eq(" + first_pos_repetition_p_tag + ")").before('

*'+number_repetition_p_tag+'

'); } $("#v_desc").find(".info2").children("br").each(function (i) {//我祝傻逼up拉屎时间和这个空格一样长。真就满屏幕空格呗?wdnmd if (i > 0) { var br_tag_html = $(this).html(); var this_before = $("#v_desc").find(".info2").children("br:eq(" + (i - 1) + ")"); var before_br_tag_html = this_before.html(); if ((br_tag_html == before_br_tag_html || br_tag_html == before_br_tag_html.trim()) && $(this).attr('class')-this_before.attr('class') == 1) { $(this).hide(); } } }); $(".l-con").on('DOMNodeInserted',main); } function add_button() { if ($(".changemodebutton").length < 1) { $("#v_desc").find(".info").before(''); $(".changemodebutton").on('click', function click_changemodebutton() { if ($("#v_desc").find(".info").is(":visible")) { hide_info(); hide_abstract_spread(); show_info2(); $(".changemodebutton")[0].value = "切换原版"; } else { show_info(); show_abstract_spread(); hide_info2(); $(".changemodebutton")[0].value = "切换改版"; } }); } } function add_info2() { if ($("#v_desc").find(".info2").length < 1) { $("#v_desc").find(".info").after('
'); $("#v_desc").find(".info2").width($("#v_desc").find(".info").width()); hide_info(); show_info2(); } } var startTime = new Date().getTime(); var interval_total_time=60000; var timer= setInterval(function(){ $(".l-con").on('DOMNodeInserted',main); //console.log(new Date().getTime() - startTime); if(new Date().getTime() - startTime> interval_total_time){ clearInterval(timer); $(".l-con").off('DOMNodeInserted',main); return; } }, 500); // Your code here... // Your code here... // Your code here... })();