该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
进一步优化,判断视频专辑后的参数进行判断,更改,跳转…
// ==UserScript==
// @name 哔哩哔哩bilibili替换旧版播放(稍后再看)
// @description 通过替换获取视频地址的方式, 实现跳转稍后再看旧版播放
// @author waecy
// @version 1.1
// @namespace waecy
// @match *://*.bilibili.com/video/*
// @grant none
// @run-at document-end
// ==/UserScript==
(function() {
// 获取当前Url
var Url = window.location.href;
// 判断是否是B站
var isUrl = Url.slice(0, 25);
// 判断是否已进行更改
var flag = false;
// 判断是否是B站,是的话进行操作
if (!flag && isUrl == 'https://www.bilibili.com/') {
// 切割数组
var arr = Url.split('/');
// 拼接地址
var str = '/watchlater/#/';
// 最终返回结果
var ret = '';
// 正则判断是否包含特殊符号
var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>《》/?~!@#¥……&*()——|{}【】‘;:”“'。,、? ]");
/*
(5) ["https:", "", "http://www.bilibili.com", "video", "av53102870"]
(5) ["https:", "", "http://www.bilibili.com", "video", "av53102870?pn=1"]
(7) ["https:", "", "http://www.bilibili.com", "watchlater", "#", "av53102870", "p2"]
*/
if (arr.length <= 5) {
// 判断是否不是番剧ep和是否有?参数
if (arr[4].substr(0, 2) == 'av' && !pattern.test(arr[4])) {
// 拼接字符串
ret = arr[0] + '//' + arr[2] + str + arr[4];
}
// 更改成功,防止循环操作
flag = true;
// 跳转稍后再看页面
window.open(ret, '_self');
} else if (arr.length >= 6) {
// 当AV号后面不为空进入下一步
if (arr[5]) {
// 获取集数
var ary = [];
ary = arr[5].match(/\d+/g);
// 拼接字符串
// ret = 'https://www.bilibili.com/video/' + arr[4] + '/' + arr[5].substr(1, 1) + ary;
ret = arr[0] + '//' + arr[2] + str + arr[4] + '/' + arr[5].substr(1, 1) + ary;
// 更改成功,防止循环操作
flag = true;
// 跳转稍后再看页面
window.open(ret, '_self');
}
}
}
})();