BiliPlus UI

修改BiliPlus界面

As of 24.01.2018. See апошняя версія.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         BiliPlus UI
// @namespace    https://www.biliplus.com/
// @version      1.0
// @description  修改BiliPlus界面
// @author       SettingDust

// @include      http*://www.biliplus.com/*
// @exclude      http*://www.biliplus.com/tucao/*

// @require      https://code.jquery.com/jquery-latest.js
// @require      https://cdn.bootcss.com/Ripple.js/1.2.1/ripple.min.js
// @grant        none
// ==/UserScript==

$(function() {
    if($('.sidebar').length>0){
        var css = "";
        //修改顶部
        css += [
            "html {",
            "  -webkit-font-smoothing: antialiased;",
            "}",
            ".biliplus-ui-header {",
            "  width: calc(100% - 250px);",
            "  transition: width 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;",
            "  color: rgba(255, 255, 255, 1);",
            "  background-color: #0092f8;",
            "  top: 0;",
            "  left: auto;",
            "  right: 0;",
            "  position: fixed;",
            "  display: flex;",
            "  z-index: 1100;",
            "  box-sizing: border-box;",
            "  flex-shrink: 0;",
            "  flex-direction: column;",
            "  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);",
            "}",
            ".biliplus-ui-bar {",
            "  padding: 0 24px;",
            "  height: 64px;",
            "  display: flex;",
            "  position: relative;",
            "  align-items: center;",
            "}",
            ".biliplus-ui-title {",
            "  flex: 0 1 auto;",
            "  margin-left: 24px;",
            "}",
            ".biliplus-ui-whitespace {",
            "  flex: 1 1 auto;",
            "}",
            ".biliplus-ui-bar-item {",
            "  display: inline;",
            "  flex-direction: inherit;",
            "}",
            ".biliplus-ui-font {",
            "  font-family: Verdana, 'Roboto', 'Helvetica', 'Arial', sans-serif;",
            "  font-size: 1.3125rem;",
            "  line-height: 1.16667em;",
            "  font-weight: 500;",
            "}",
            ".biliplus-ui-button,.biliplus-ui-button:hover,.biliplus-ui-button:link,.biliplus-ui-button:active,.biliplus-ui-button:focus{",
            "  color: inherit;",
            "  flex: 0 0 auto;",
            "  width: 48px;",
            "  height: 48px;",
            "  font-size: 1.5rem;",
            "  text-align: center;",
            "  border-radius: 50%;",
            "  cursor: pointer;",
            "  border: 0;",
            "  display: inline-flex;",
            "  outline: none;",
            "  position: relative;",
            "  user-select: none;",
            "  align-items: center;",
            "  vertical-align: middle;",
            "  text-decoration: none;",
            "  justify-content: center;",
            "  background-color: transparent;",
            "  -webkit-appearance: none;",
            "  -webkit-tap-highlight-color: transparent;",
            "  padding: 0;",
            "}",
            ".biliplus-ui-button-icon {",
            "  width: 100%;",
            "  display: flex;",
            "  align-items: inherit;",
            "  justify-content: inherit;",
            "}",
            "*, *::before, *::after {",
            "  box-sizing: inherit;",
            "}",
            ".biliplus-ui-element {",
            "  width: 1.5em;",
            "  height: 1.5em;",
            "}",
            ".biliplus-ui-avatar {",
            "  border-radius: 50%;",
            "}",
            ".biliplus-ui-svg {",
            "  fill: currentColor;",
            "  width: 24px;",
            "  height: 24px;",
            "  display: inline-block;",
            "  transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;",
            "  user-select: none;",
            "  flex-shrink: 0;",
            "}"
        ].join("\n");
        $('body').prepend('<header class="biliplus-ui-header"></header>');
        $('.biliplus-ui-header').append('<div class="biliplus-ui-bar"></div>');
        $('.biliplus-ui-bar').append('<div class="biliplus-ui-whitespace"></div>');
        $('.userbar').removeClass('userbar');
        var avatar=$('.userbarcontent span img').attr('src');
        var name=$('.userbarcontent span b').text();
        $('.userbarcontent').hide();
        $('.biliplus-ui-bar').append('<div class="biliplus-ui-bar-item"><a tabindex="0" class="biliplus-ui-button"><span class="biliplus-ui-button-icon"><img src="'+avatar+'" class="biliplus-ui-avatar biliplus-ui-element"></span></a></div>');
        //个人信息栏
        css += [
            ".biliplus-ui-sidebar {",
            "  width: 250px;",
            "  position: absolute;",
            "  background-color: #fff;",
            "  height: 100%;",
            "  z-index: 2;",
            "  position: fixed;",
            "}",
            ".biliplus-ui-sidebar-user {",
            "  right: -250px;",
            "  border-left: 1px solid rgba(0, 0, 0, 0.12);",
            "  transition: .3s;",
            "}",
            ".biliplus-ui-sidebar-user-content {",
            "  margin-top: 14.68em;",
            "}",
            ".biliplus-ui-sidebar-user-name {",
            "  text-align: center;",
            "  padding-bottom: 16px;",
            "  border-bottom: 1px solid rgba(0, 0, 0, 0.12);",
            "  margin-bottom: 0;",
            "}",
            ".biliplus-ui-sidebar-user-on {",
            "  right: 0;",
            "}",
            ".biliplus-ui-avatar-button-big {",
            "  cursor: default;",
            "  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);",
            "}",
            ".biliplus-ui-avatar-big {",
            "  cursor: pointer;",
            "  border: 4px solid white;",
            "}",
            ".biliplus-ui-sidebar-ul {",
            "  padding: 0;",
            "  padding-top: 8px;",
            "  padding-bottom: 8px;",
            "  flex: 1 1 auto;",
            "  margin: 0;",
            "  position: relative;",
            "  list-style: none;",
            "}",
            ".biliplus-ui-sidebar-li {",
            "  color: rgba(0, 0, 0, 0.87);",
            "  display: block;",
            "  font-size: 0.875rem;",
            "  font-weight: 500;",
            "  font-family: Verdana, 'Roboto', 'Helvetica', 'Arial', sans-serif;",
            "  line-height: 1.71429em;",
            "  padding-top: 0;",
            "  padding-bottom: 0;",
            "  position: relative;",
            "  align-items: center;",
            "  justify-content: flex-start;",
            "  text-decoration: none;",
            "}",
            ".biliplus-ui-sidebar-li-a {",
            "  padding-left: 24px;",
            "  padding-right: 24px;",
            "  border-radius: 0;",
            "  text-transform: none;",
            "  justify-content: flex-start;",
            "  width: 100%;",
            "  transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;",
            "  color: rgba(0, 0, 0, 0.87) !important;",
            "  padding: 8px 16px;",
            "  min-width: 88px;",
            "  font-size: 1rem;",
            "  box-sizing: border-box;",
            "  min-height: 36px;",
            "  line-height: 1.4em;",
            "  font-family: Verdana, 'Roboto', 'Helvetica', 'Arial', sans-serif;",
            "  font-weight: 500;",
            "  cursor: pointer;",
            "  border: 0;",
            "  display: inline-flex;",
            "  outline: none;",
            "  position: relative;",
            "  user-select: none;",
            "  align-items: center;",
            "  vertical-align: middle;",
            "  text-decoration: none;",
            "  background-color: transparent;",
            "  -webkit-appearance: none;",
            "  -webkit-tap-highlight-color: transparent;",
            "}",
            ".biliplus-ui-sidebarli-a:hover {",
            "  background-color: rgba(0, 0, 0, 0.12);",
            "}"
        ].join("\n");
        $('.biliplus-ui-header').after('<div class="biliplus-ui-sidebar biliplus-ui-sidebar-user"></div>');
        $('.biliplus-ui-sidebar-user').append('<div class="biliplus-ui-sidebar-user-content"></div>');
        $('.biliplus-ui-sidebar-user-content').append('<h2 class="biliplus-ui-font biliplus-ui-sidebar-user-name">'+name+'</h2>');
        var space=$('.usersidebar a:eq(0)').attr('href');
        var dynamic=$('.usersidebar a:eq(1)').attr('href');
        var bangumi=$('.usersidebar a:eq(2)').attr('href');
        var favouite=$('.usersidebar a:eq(3)').attr('href');
        var history=$('.usersidebar a:eq(4)').attr('href');
        var attention=$('.usersidebar a:eq(5)').attr('href');
        $('body').on('click','.biliplus-ui-avatar-button-big',function(){
            window.location.href=space;
            return false;
        });
        //头像转换
        $('.biliplus-ui-button').click(function(){
            if($(this).find('.biliplus-ui-button-icon .biliplus-ui-avatar').length>0
               & !$(this).hasClass('.biliplus-ui-avatar-button-big')){
                $('.biliplus-ui-avatar').animate({
                    top: '3.8em',
                    width: '8em',
                    height: '8em',
                },300);
                $(this).animate({
                    top: '3.8em',
                    width: '8em',
                    height: '8em',
                },300,function(){
                    $(this).addClass('biliplus-ui-avatar-button-big');
                });
                $('.biliplus-ui-avatar').addClass('biliplus-ui-avatar-big ');
                $('.biliplus-ui-sidebar-user').addClass('biliplus-ui-sidebar-user-on');
            }
        });
        /*$('body').not('.biliplus-ui-button').click(function(){
        $('.biliplus-ui-sidebar-user-on').removeClass('biliplus-ui-sidebar-user-on');
        avatarToSmall();
        });*/
        //列表
        $('.biliplus-ui-sidebar-user-content').append('<ul class="biliplus-ui-sidebar-ul"></ul>');
        $('.biliplus-ui-sidebar-user-content .biliplus-ui-sidebar-ul').append('<li class="biliplus-ui-sidebar-li"><a class="biliplus-ui-sidebar-li-a" href="'+dynamic+'">动态</a></li>');
        $('.biliplus-ui-sidebar-user-content .biliplus-ui-sidebar-ul').append('<li class="biliplus-ui-sidebar-li"><a class="biliplus-ui-sidebar-li-a" href="'+bangumi+'">追番</a></li>');
        $('.biliplus-ui-sidebar-user-content .biliplus-ui-sidebar-ul').append('<li class="biliplus-ui-sidebar-li"><a class="biliplus-ui-sidebar-li-a" href="'+favouite+'">收藏夹</a></li>');
        $('.biliplus-ui-sidebar-user-content .biliplus-ui-sidebar-ul').append('<li class="biliplus-ui-sidebar-li"><a class="biliplus-ui-sidebar-li-a" href="'+history+'">历史记录</a></li>');
        $('.biliplus-ui-sidebar-user-content .biliplus-ui-sidebar-ul').append('<li class="biliplus-ui-sidebar-li"><a class="biliplus-ui-sidebar-li-a" href="'+attention+'">我的关注</a></li>');
        //侧边栏
        css += [
            ".biliplus-ui-sidebar-menu {",
            "  left: 0;",
            "  border-right: 1px solid rgba(0, 0, 0, 0.12);",
            "  z-index: 1200;",
            "}",
            ".biliplus-ui-sidebar-menu-title-content {",
            "  flex-grow: 1;",
            "  align-items: flex-start;",
            "  flex-direction: column;",
            "  justify-content: center;",
            "  padding-left: 24px;",
            "  padding-right: 24px;",
            "  min-height: 64px;",
            "}",
            ".biliplus-ui-sidebar-menu-title {",
            "  display: flex;",
            "  border-bottom: 1px solid rgba(0, 0, 0, 0.12);",
            "  color: #0092f8 !important;",
            "}",
            ".biliplus-ui-sidebar-menu-title-main {",
            "  font-size: 2.3em;",
            "  font-weight: 700;",
            "  line-height: 54px;",
            "}",
        ].join("\n");
        $('.biliplus-ui-sidebar-user').after('<div class="biliplus-ui-sidebar-menu biliplus-ui-sidebar"></div>');
        $('.sidebar').hide();
        //列表
        $('.biliplus-ui-sidebar-menu').append('<a class="biliplus-ui-sidebar-menu-title" href="https://www.biliplus.com/"></a>');
        $('.biliplus-ui-sidebar-menu-title').append('<div class="biliplus-ui-sidebar-menu-title-content biliplus-ui-font"></div>');
        $('.biliplus-ui-sidebar-menu-title-content').append('<div style="padding: 5px 0;"><span class="biliplus-ui-sidebar-menu-title-main">BiliPlus</span></br></div>');
        $('.biliplus-ui-sidebar-menu').append('<ul class="biliplus-ui-sidebar-ul"></ul>');
        var bangumilist=$('.sidebar a:eq(1)').attr('href');
        var about=$('.sidebar a:eq(2)').attr('href');
        var lyb=$('.sidebar a:eq(3)').attr('href');
        var tuocao=$('.sidebar a:eq(4)').attr('href');
        $('.biliplus-ui-sidebar-menu .biliplus-ui-sidebar-ul').append('<li class="biliplus-ui-sidebar-li"><a class="biliplus-ui-sidebar-li-a" href="'+bangumilist+'">番剧更新</a></li>');
        $('.biliplus-ui-sidebar-menu .biliplus-ui-sidebar-ul').append('<li class="biliplus-ui-sidebar-li"><a class="biliplus-ui-sidebar-li-a" href="'+lyb+'">留言板</a></li>');
        $('.biliplus-ui-sidebar-menu .biliplus-ui-sidebar-ul').append('<li class="biliplus-ui-sidebar-li"><a class="biliplus-ui-sidebar-li-a" href="'+tuocao+'">TuCaoHelper</a></li>');
        $('.biliplus-ui-sidebar-menu .biliplus-ui-sidebar-ul').append('<li class="biliplus-ui-sidebar-li"><a class="biliplus-ui-sidebar-li-a" href="'+about+'">关于</a></li>');
        //水波效果
        window.rippler = $.ripple('.biliplus-ui-button:not(.biliplus-ui-avatar-button-big)', {
            multi: true
        });
        window.rippler = $.ripple('.biliplus-ui-sidebar-li', {
            multi: true
        });
        //主体内容
        css += [
            ".biliplus-ui-content {",
            "  margin-bottom: 100px;",
            "  max-width: 900px;",
            "  padding-left: 24px;",
            "  padding-right: 24px;",
            "  padding-top: 80px;",
            "  margin: 0 auto;",
            "  flex: 1 1 100%;",
            "}"
        ].join("\n");
        $('.biliplus-ui-sidebar-menu').after('<div class="biliplus-ui-content"></div>');
        $('.biliplus-ui-content').append($('.content'));
        $('.content').removeClass('content');
        $('body').on('click','.biliplus-ui-content',function(){
            avatarToSmall();
        });
        //搜索
        if(window.location.href!='https://www.biliplus.com/'){
            $('.biliplus-ui-bar-item').before('<div class="biliplus-ui-bar-item"><a tabindex="0" class="biliplus-ui-button"><span class="biliplus-ui-button-icon"><svg class="biliplus-ui-svg" focusable="false" viewBox="0 0 24 24" aria-hidden="true"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path></svg></span></a></div>');
        }
        //背景LOGO
        css += [
            ".logo {",
            "  font-family: Verdana;",
            "  font-size: 16em;",
            "  opacity: 0.01;",
            "  position: absolute;",
            "  bottom: 0;",
            "  right: 0;",
            "  font-weight: 700;",
            "  user-select: none;",
            "  pointer-events: none;",
            "}"
        ].join("\n");

        $('body').append('<div class="logo">Bili<sup>+</sup></div>');
        $("head").append ('<link href="https://cdn.bootcss.com/Ripple.js/1.2.1/ripple.min.css" rel="stylesheet">');
        $("<style></style>").text(css).appendTo($("head"));
    }
});
function avatarToSmall(){
    $('.biliplus-ui-avatar').animate({
        top: '0',
        width: '1.5em',
        height: '1.5em',
    },300);
    $('.biliplus-ui-avatar-button-big').animate({
        top: '0',
        width: '48px',
        height: '48px',
    },300,function(){
        $('.biliplus-ui-avatar-button-big').removeClass('biliplus-ui-avatar-button-big');
    });
    $('.biliplus-ui-avatar').removeClass('biliplus-ui-avatar-big');
    $('.biliplus-ui-sidebar-user').removeClass('biliplus-ui-sidebar-user-on');
}