如何优化B站视频(bilibili )视频标题
ptile()
//--------------标题简洁 函数--------------------start
//标题简洁风
function ptile(){
if(document.getElementsByClassName('base-video-sections-v1') == null){
return;
}
console.info('---ptile---');
let arr = document.querySelectorAll('.video-episode-card .video-episode-card__info-title');
let prefix = findPrefix();
for(var i = 0;i<arr.length;i++){
var str = arr[i].innerText;
str = str.replace(prefix,'');
arr[i].innerText = str;
}
}
//寻找标题公共前缀
function findPrefix(){
var prefix = '';
// NodeList 不是一个数组,是一个类似数组的对象.可以使用 Array.from() 将其转换为数组
var liArr = document.querySelectorAll('.video-episode-card .video-episode-card__info-title');
liArr = Array.from(liArr);
var arr = liArr.map( (item, index) => {
return item.title
})
//console.log("a标签的title集合", arr)
if(arr.length>=3){
//随机采样
var index1 = getRndInteger(0,arr.length);
var index2 = getRndInteger(0,arr.length);
var index3 = getRndInteger(0,arr.length);
var s1s2 = [arr[index1],arr[index2]];
var s2s3 = [arr[index2],arr[index3]];
console.info(s1s2);
console.info(s2s3);
var s1s2_Pre = longestCommonPrefix(s1s2);
var s2s3_Pre = longestCommonPrefix(s2s3);
if(s1s2_Pre == s2s3_Pre){
prefix = s1s2_Pre;
}
}
return prefix;
}
//JavaScript 最长公共前缀
function longestCommonPrefix(strs) {
if(strs.length == 0)
return "";
let ans = strs[0];
for(let i =1;i<strs.length;i++) {
let j=0;
for(;j<ans.length && j < strs[i].length;j++) {
if(ans[j] != strs[i][j])
break;
}
ans = ans.substr(0, j);
if(ans === "")
return ans;
}
return ans;
};
//返回 min(包含)~ max(不包含)之间的数字
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min) ) + min;
}
//--------------标题简洁 函数--------------------end