// ==UserScript==
// @name bilibili首页增加[关注]列表
// @version 6.2
// @description 在bilibili网页端上方菜单添加[关注]的列表,可自定义更改关注列表,快速进入你关注的up主空间。
// @author 冬瓜语
// @match *://www.bilibili.com/
// @match *://www.bilibili.com/#
// @namespace https://greasyfork.org/users/307669
// @downloadURL none
// ==/UserScript==
(function() {
var cookies = document.cookie;
var id=cookies.match(/DedeUserID=(\d+)/)[1];
go();
function go(){
var Obj=document.querySelector("[report-id=playpage_dynamic]");
var Obj2=document.querySelector("#internationalHeader > div.mini-header.m-header > div > div.nav-user-center > div.user-con.signin > div:nth-child(3)");
var type;
if(Obj){
type = 1;
$("
").insertAfter(Obj);
$("aaaaaaa
").insertAfter(Obj);
var Obj_menu=document.querySelector("[report-id=Focus]");
$("").insertAfter(Obj_menu);
var Obj_UP=document.querySelector("[report-id=UP]");
var now = window.location.href;
$(" 设置 ").insertAfter(Obj_UP);
main();
}else if(Obj2){
type = 2;
var newNode = document.createElement("div");
newNode.setAttribute("id","close");
newNode.setAttribute("class","item");
newNode.innerHTML=" 关注";
Obj2.insertBefore(newNode,null);
var Obj_menu = document.querySelector("#internationalHeader > div.mini-header.m-header > div > div.nav-user-center > div.user-con.signin > div:nth-child(3) > div.item");
var newNode3 = document.createElement("div");
newNode3.setAttribute("id","hh");
newNode3.setAttribute("class","up");
newNode3.setAttribute("style","display:none;position: absolute;z-index: 1;width: 110px; height: 42px; background-color: #FFF; border-radius: 0 0 4px 4px; box-shadow:rgba(0,0,0,0.16) 0px 2px 4px; top:42px;left:-35px");
Obj_menu.insertBefore(newNode3,null);
var newUl = document.createElement("ul");
newUl.setAttribute("id","u");
newUl.setAttribute("report-id","UP");
newUl.setAttribute("class","sub-nav");
newUl.setAttribute("style","padding: 0px;margin: 0px;");
newNode3.insertBefore(newUl,null);
var Obj_UP=newUl;
main();
}else{setTimeout(go,500);}
function main() {
var timer = null;
var first=document.body.firstChild;
/*
if(now != "https://www.bilibili.com/"){
$(" ").insertAfter(first);
window.onload = function(){
//在页面加载完成后主页面向iframe发送请求
window.frames[0].postMessage('jogging, reading and writing','http://www.bilibili.com');
}
}
*/
/*
// 主页面监听message事件,
window.addEventListener('message', function(e){
var data = e.data;
document.querySelector('p').innerHTML = data;
}, false);
*/
/**
*自动添加元素
*/
if(localStorage.length>0){
var number = 1;
var x="a";
for(var i=0;iname").insertAfter(Obj_UP);
document.getElementById("aa").innerHTML=Nname;
document.getElementById("aa").href=siteurl;
x="a"+number.toString();
$('#aa').attr('id', x);
}else{
var newNodeP = document.createElement("a");
newNodeP.setAttribute("id","a"+number.toString());
newNodeP.setAttribute("class","im-list");
newNodeP.innerHTML=Nname;
newNodeP.href=siteurl;
newNodeP.setAttribute("target","_blank");
newNodeP.setAttribute("style","display: block;text-align:center; color: #222222 ;height :42px;");
Obj_UP.insertBefore(newNodeP,null);
}
number++;
}
}
}
/**
*新版在此添加设置按钮
*/
if(type == 2){
/**
*添加设置按钮
*/
var newNode4 = document.createElement("a");
newNode4.setAttribute("id","setting");
newNode4.setAttribute("class","im-list");
newNode4.setAttribute("href","#");
newNode4.setAttribute("style","display: block; color: #222222; height:42px;text-align:center;");
newNode4.innerHTML=" 设置 ";
Obj_UP.insertBefore(newNode4,null);
}
/**
*计算列表高度
*/
var word = document.getElementsByClassName("im-list");
var number2=0;
for(var j in word){number2++;}
var h=(number2-3)*42;
document.getElementById("hh").style.height = h+"px";
/**
*鼠标悬停产生阴影
*/
for(var k in word)
{
word[k].onmouseover = function(){
this.style.background="#E5E9EF";
this.style.color="#00AED6";
this.style.borderRadius="0 0 4px 4px"; //会使每一个超链接被选中时都变成圆角
}
word[k].onmouseout = function(){
this.style.background="#FFF";
this.style.color="#222222";
this.style.borderRadius="0 0 4px 4px"; //会使每一个超链接被选中时都变成圆角
}
}
/**
*鼠标悬停展开列表
*/
if(type == 1){
$(document).ready(function(){
$("#ty").mouseenter(function(){
setTimeout(show,300);
function show(){
document.getElementById("hh").style.display="";
$("#hh").animate({
opacity: 1,
top:"42px",
},300);
}
});
});
}else{
var OpenListBtn = document.getElementById("ty");
OpenListBtn.onmouseenter = function(){
timer =setTimeout(function(){
document.getElementById("hh").style.display="";
/*
$("#hh").animate({
opacity: 1,
top:"42px",
},300);
*/
},400);
}
}
/**
*鼠标移出隐藏列表
*/
if(type == 1){
$(document).ready(function(){
$("#close").mouseleave( function(){
$("#hh").animate({
opacity: 0,
top:"46px",
},300);
setTimeout(hid,300); //动画结束后隐藏
function hid(){
document.getElementById("hh").style.display="none";
}
});
});
}else{
var CloseListBtn = document.getElementById("hh");
CloseListBtn.onmouseleave = function(){
/*
$("#hh").animate({
opacity: 0,
top:"46px",
},300);
*/
timer =setTimeout(function(){
document.getElementById("hh").style.display="none";
},300);
}
}
/**
*可视化窗口
*/
if(type == 1){
$("").insertBefore(first);
}else{
var Obj2_shadow = document.querySelector("#app");
var newTable1 = document.createElement("div");
newTable1.setAttribute("id","BackGround");
newTable1.setAttribute("style","display:none;");
Obj2_shadow.insertBefore(newTable1,null);
var newTable2 = document.createElement("div");
newTable2.setAttribute("id","shadow");
newTable2.setAttribute("style","width:100%;height:100%;background:black;position:absolute;z-index:10001;top: 0;left: 0;filter:alpha(opacity:80);opacity:0.8;");
newTable1.insertBefore(newTable2,null);
//Obj2.insertBefore(newTable2,null);
var newTable3 = document.createElement("div");
newTable3.setAttribute("id","panel");
newTable3.setAttribute("style","box-shadow:rgba(0.5,0.5,0.5,0.5) 4px 4px 4px 4px;position: absolute; background: white; border-radius: 10px; padding: 20px; top: 400px; left: 50%; width: 500px;height: 410px; transform: translate(-50%, -50%); cursor: default;z-index:10002;filter:alpha(opacity:100);opacity:1;");
newTable1.insertBefore(newTable3,null);
var newTable4 = document.createElement("text");
newTable4.setAttribute("style","font-size:20px");
newTable4.innerHTML="设置";
newTable3.insertBefore(newTable4,null);
var newTable5 = document.createElement("text");
newTable5.setAttribute("id","closeX");
newTable5.setAttribute("style","color:grey;font-size:25px;float:right");
newTable5.innerHTML="X";
newTable3.insertBefore(newTable5,null);
newTable3.innerHTML+="
";
var newTable6 = document.createElement("form");
newTable6.innerHTML=" 请输入UP主的名称: ";
newTable3.insertBefore(newTable6,null);
var newTable7 = document.createElement("input");
newTable7.setAttribute("id","Name");
newTable7.setAttribute("type","text");
newTable7.setAttribute("placeholder","如:敖厂长");
newTable7.setAttribute("required","required");
newTable7.setAttribute("maxlength","9");
newTable7.setAttribute("style","color:gray; width: 280px; border: 1px solid #ccc; border-radius: 1px;");
newTable7.innerHTML=" 请输入UP主的名称: ";
newTable6.insertBefore(newTable7,null);
newTable3.innerHTML+="
";
var newTable8 = document.createElement("form");
newTable8.setAttribute("report-id","Theurl");
newTable8.innerHTML=" 请输入UP主的网址: ";
newTable3.insertBefore(newTable8,null);
var newTable9 = document.createElement("input");
newTable9.setAttribute("id","Url");
newTable9.setAttribute("type","text");
newTable9.setAttribute("placeholder","如:https://space.bilibili.com/122879");
newTable9.setAttribute("required","required");
newTable9.setAttribute("style","color:gray; width: 280px; border: 1px solid #ccc; border-radius: 1px;");
newTable9.innerHTML=" 请输入UP主的名称: ";
newTable8.insertBefore(newTable9,null);
newTable8.innerHTML += "
";
newTable8.innerHTML += " ";
newTable8.innerHTML += " ";
newTable8.innerHTML += " 提示:删除操作只需填写已有的UP主名称";
newTable3.innerHTML+="
";
}
/**
*设置按钮(打开设置面板)
*/
if(type == 1){
$(document).ready(function(){
$("#setting").click(function(){
$("body").css({overflow:"hidden"}); //禁用滚动条
document.getElementById("BackGround").style.display="";
$("#hh").animate({
opacity: 0,
top:"46px",
},300);
setTimeout(hid,300); //动画结束后隐藏
function hid(){
document.getElementById("hh").style.display="none";
}
});
});
}else{
var settingBtn = document.getElementById("setting");
settingBtn.onclick = function(){
document.documentElement.style.overflowY = 'hidden'; //禁用滚动条
document.getElementById("BackGround").style.display="";
$("#hh").animate({
opacity: 0,
top:"46px",
},300);
setTimeout(hid,300); //动画结束后隐藏
function hid(){
document.getElementById("hh").style.display="none";
}
}
}
/**
*显示现有元素
*/
// $(document).ready(function(){
var list = document.getElementById("list");
if(localStorage.length>0){
var result = "";
result += "名称 | 网址 |
";
for(var i=0;i"+Nname+" | "+siteurl+" | ";
}
}
result += "
";
list.innerHTML = result;
}else{
list.innerHTML = "数据为空……";
}
// });
var Turl=document.querySelector("[report-id=Theurl]");
// $(" ").insertAfter(Turl);
/**
*增加记录
*/
//$(document).ready(function(){
if(type == 1){
$("#submit").mouseenter(function(){ //悬停变色
document.getElementById("submit").style.color="red";
});
$("#submit").mouseleave(function(){
document.getElementById("submit").style.color="#00AED6";
});
$("#submit").click(function(){
var name=document.getElementById("Name").value;
var Nname="兾"+name;
var address=document.getElementById("Url").value;
if (name==null || name==""){
alert("Up主名称不可为空!");
}
else if (address==null || address==""){
alert("Up主网址不可为空!");
}else{
localStorage.setItem(Nname, address);
alert("添加成功!刷新后生效!");
}
});
}else{
var submitBtn = document.getElementById("submit");
submitBtn.onmouseover = function(){
document.getElementById("submit").style.color="red";
}
submitBtn.onmouseout = function(){
document.getElementById("submit").style.color="#00AED6";
}
submitBtn.onclick = function(){
var name=document.getElementById("Name").value;
var Nname="兾"+name;
var address=document.getElementById("Url").value;
if (name==null || name==""){
alert("Up主名称不可为空!");
}
else if (address==null || address==""){
alert("Up主网址不可为空!");
}else{
localStorage.setItem(Nname, address);
alert("添加成功!刷新后生效!");
}
}
}
// });
/**
*删除记录
*/
//$(document).ready(function(){
if(type == 1){
$("#delete").mouseenter(function(){ //悬停变色
document.getElementById("delete").style.color="red";
});
$("#delete").mouseleave(function(){
document.getElementById("delete").style.color="#00AED6";
});
$("#delete").click(function(){
var name=document.getElementById("Name").value;
var mk = 0;
if (name==null || name==""){
alert("Up主名称不可为空!");
}else{
for(var i=0;i