该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

进一步优化,判断视频专辑后的参数进行判断,更改,跳转…

// ==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');

}

}

}

})();