// ==UserScript==
// @name bili_fix_player
// @namespace bili
// @description 修复B站播放器,黑科技,列表页、搜索页弹窗,破乐视限制,提供高清、低清晰源下载,弹幕下载
// @include /^.*\.bilibili\.(tv|com|cn)\/(video\/|search)?.*$/
// @include /^.*bilibili\.kankanews\.com\/(video\/|search)?.*$/
// @version 3.6.3
// @grant GM_xmlhttpRequest
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_addStyle
// @author 绯色
// @downloadURL none
// ==/UserScript==
/**
出现无法播放情况先关闭自动修复
2014-07-20修复小BUG,增加评论区移除和谐娘功能 当出现[此楼层已被用户隐藏 点击查看]时,自动展开
2014-07-13你造吗?您可以使用一个海外的代理并将http://interface.bilibili.com/playurl?*作为代理规则加入到代理列表中j即可弹窗播放爱奇艺视频(来自田生大神)
修复弹窗播放时,点击B站FLASH播放器后,若直接点击关闭弹窗,会造成鼠标滚轮无效的问题
修复360浏览器在脚本设置的时候,被视频君挡住无法设置的问题,方案是(设置的时候先让视频君去火星,设置后再放回来)
2014-06-30按照田生大神建议,增加与其脚本匹配id,在弹窗标题增加打开播放页面的按钮,补充,发现BUG,在弹窗播放时,点击B站FLASH播放器后,若直接点击关闭弹窗,会造成鼠标滚轮无效的问题,这BUG作者暂时无修复方法
并且使用了田生大神分支里面的弹窗播放器支持网页全屏功能,感谢
2014-06-21修复搜索页面因为作者正则匹配错误(B站把域名换成com但在a标签还是tv域名,坑爹)的问题
2014-06-18修复B站更换域名的BUG,在田生大神的建议下,将所有api域名换成com,弹窗播放器增加收藏按钮
2014-06-08修复小部分bug(样式冲突、弹窗冲突)
2014-06-03增强弹窗播放器,[拖动窗口标题可移动播放器,拖动右下角可改变播放器大小,设置后自动保存宽高和位置]
2014-05-25感谢吧友lzgptdgj提供BUG,在小型播放器下,屏蔽规则会无效的问题,已经修复
2014-05-14增加首页弹窗播放,基本实现全站可弹窗(首页新番专题列表除外等)
2014-05-13增加搜索页面的弹窗播放,并且支持多P和显示当前P,增加模糊画质下载按钮
2014-05-11还是基佬要求,增加弹窗播放器分P效果,增加弹幕下载功能,在吧友大神田生的建议下,正则表达式加强匹配
2014-05-10收益于自己的B站追番计划(http://v.myacg.ga或者http://weiyun.jd-app.com),代码逻辑重构(不再区分视频源再解析视频),并重写UI
2014-05-10受诸多基佬要求,增加除首页外其他分类页面的弹窗播放(初衷是为了弹窗乐视源)
2014-03-28增加下载视频按钮
2014-01-23替换优酷、爱奇艺、搜狐为B站播放器
2013-12-14修复B站播放器无法在火狐魔镜弹窗播放
------------以下信息提供给开发者-----------
//https://static-s.bilibili.tv/play.swf---新版播放器
//http://static.hdslb.com/play.swf---旧版播放器
//https://static-s.bilibili.tv/play_old.swf---考古级别播放器
//使用https连接的播放器可以获得屏蔽列表
-------------------------------------------
*/
(function() {
//初始化 init
if (GM_getValue('auto') == undefined) GM_setValue('auto', 1);
if (GM_getValue('player_size') == undefined) GM_setValue('player_size', 1);
if (GM_getValue('pagebox_display')== undefined) GM_setValue('pagebox_display', 0);
if (GM_getValue('pagebox_harm')== undefined) GM_setValue('pagebox_harm', 0);
//if (GM_getValue('player_container')== undefined) GM_setValue('player_container', 1);//弹窗播放器的标签容器(iframe/embed)已经完美解决
//初始化播放器宽高
if (GM_getValue('player_width') == undefined) GM_setValue('player_width', 950);
if (GM_getValue('player_height') == undefined) GM_setValue('player_height', 482);
//初始化播放器外框位置
//if (GM_getValue('div_top') == undefined) GM_setValue('div_top', 100);//设置垂直位置的时候,如果是长页而且是浮动播放器时候记录位置,会导致播放器不知所踪
if (GM_getValue('div_left') == undefined) GM_setValue('div_left', 100);
//初始化jquery支持
var $ = unsafeWindow.$;
/**
-------------------------------用户界面GUI View-------------------------------------
*/
//函数,插入可视化操作视图
function insert_html(type) {
var auto = GM_getValue('auto') ? '已打开' : '已关闭';
var player_size = GM_getValue('player_size') ? '大型' : '小型';
var display=GM_getValue('pagebox_display') ? '悬浮' : '默认';
var harm=GM_getValue('pagebox_harm') ? '和谐娘打酱油中' : '默认[和谐娘和谐中]';
//var container=GM_getValue('player_container')?'iframe[无滚动条bug]':'embed[无拖放bug]';
var div = '脚本(`・ω・´)\
\
+10086';
$('div.num:nth-child(4) > ul:nth-child(1) > li:nth-child(1)').html(div);
//监听修复按钮
var bfpbtn = document.querySelector("#bili_fix");
bfpbtn.addEventListener("click", set_auto, false);
//监听播放器大小按钮
var bfpbtn = document.querySelector("#player_size");
bfpbtn.addEventListener("click", set_player, false);
//监听评论分页功能显示切换
var bfpbtn = document.querySelector("#pagebox-display");
bfpbtn.addEventListener("click", change_pagebox_display, false);
//监听评论和谐娘功能切换
var bfpbtn = document.querySelector("#pagebox-harm");
bfpbtn.addEventListener("click", change_pagebox_harm, false);
}
//函数,插入下载按钮
function insert_download_button(url, count) {
$('#av_source').append('分段【' + count + '】');
}
//设置参数
//修复按钮事件
function set_auto() {
GM_getValue('auto') ? GM_setValue('auto', 0) : GM_setValue('auto', 1);
var s = GM_getValue('auto') ? '已打开' : '已关闭';
document.getElementById('bili_fix').innerHTML = s;
$("#bili_fix").toggleClass("active");
$('#bili_set_status').html('已更改,刷新生效_(:3」∠)_');
}
//播放器大小按钮事件
function set_player() {
GM_getValue('player_size') ? GM_setValue('player_size', 0) : GM_setValue('player_size', 1);
var s = GM_getValue('player_size') ? '大型' : '小型';
document.getElementById('player_size').innerHTML = s;
$("#player_size").toggleClass("active");
$('#bili_set_status').html('已更改,刷新生效_(:3」∠)_');
}
//函数 评论分页功能显示切换(悬浮、原来位置)
function change_pagebox_display(){
GM_getValue('pagebox_display') ? GM_setValue('pagebox_display', 0) : GM_setValue('pagebox_display', 1);
var s = GM_getValue('pagebox_display') ? '悬浮' : '默认';
document.getElementById('pagebox-display').innerHTML = s;
$("#pagebox-display").toggleClass("active");
$('#bili_set_status').html('已更改,刷新生效_(:3」∠)_');
}
//函数 评论和谐娘功能切换
function change_pagebox_harm(){
GM_getValue('pagebox_harm') ? GM_setValue('pagebox_harm', 0) : GM_setValue('pagebox_harm', 1);
var s = GM_getValue('pagebox_harm') ? '和谐娘打酱油中' : '默认[和谐娘和谐中]';
document.getElementById('pagebox-harm').innerHTML = s;
$("#pagebox-harm").toggleClass("active");
$('#bili_set_status').html('已更改,刷新生效_(:3」∠)_');
}
/**
-------------------------------函数 Model-------------------------------------
*/
//函数,替换播放器
function Replace_player(aid, cid) {
if (GM_getValue('auto') == '1') {
if (GM_getValue('player_size') == '1') {
document.getElementById('bofqi').innerHTML = ' ';
} else {
document.getElementById('bofqi').outerHTML = '