您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
直接在动态首页展示所有的正在直播名单,而不是默认10个
当前为
// ==UserScript== // @name B站动态首页展示所有正在直播列表 // @namespace http://tampermonkey.net/ // @version 0.2.1 // @description 直接在动态首页展示所有的正在直播名单,而不是默认10个 // @author tuntun // @match https://t.bilibili.com/* // @icon https://www.google.com/s2/favicons?domain=bilibili.com // @grant GM_addStyle // @license MIT // ==/UserScript== (function () { 'use strict'; GM_addStyle(` .bili-dyn-live-users { max-height: calc(100vh - 276px); overflow-y: overlay; } .bili-dyn-live-users::-webkit-scrollbar { width: 10px; /*滚动条的宽度*/ height: 8px; /*滚动条的高度*/ opacity: 0; } .bili-dyn-live-users::-webkit-scrollbar-track-piece { background-color: #fff; /*滚动条的背景颜色*/ -webkit-border-radius: 0; /*滚动条的圆角宽度*/ opacity: 0; } .bili-dyn-live-users::-webkit-scrollbar-thumb { height: 50px; background-color: #ccc; -webkit-border-radius: 4px; outline: 2px solid #fff; outline-offset: -2px; border: 2px solid #fff; display: none; } .bili-dyn-live-users::-webkit-scrollbar-thumb:hover { background-color: #9f9f9f; } .bili-dyn-live-users:hover::-webkit-scrollbar-thumb { display: block; } .bili-dyn-live-users::-webkit-scrollbar-track { display: none; } .bili-dyn-live-users::-webkit-scrollbar-track-piece { display: none; } `) const API = { // 封装get方法 Get: async (props) => { const { url: baseUrl, params = {} } = props; let pStr = Object.keys(params).map((key) => { return `${key}=${params[key]}`; }).join('&'); let url = `${baseUrl}${pStr !== '' ? '?' : ''}${pStr}`; try { let res = await fetch(url, { credentials: "include" }); return (await res.json()).data; } catch (error) { console.error('Get Error', error); } }, // 通过关键词获取视频数据 getLiver: async (num = 0) => { try { let params = {}; if (num !== 0) { params = { size: num } } let res = await API.Get({ url: 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_live_users', params, }); return res; } catch (error) { console.log('getLiver', error); } }, getCard: async (mid) => { try { let res = await API.Get({ url: 'https://api.bilibili.com/x/web-interface/card', params: { mid, photo: 'true', }, }); return res; } catch (error) { console.log('getCard', error); } } } const Tool = { // 大数转万 formatBigNumber: (num) => { return num > 10000 ? `${(num / 10000).toFixed(2)}万` : num }, // 字符串转DOM s2d: (string) => { return new DOMParser().parseFromString(string, 'text/html').body .childNodes[0] }, } const getListItemTemplete = (prop) => { return ` <div class="bili-dyn-live-users__item" onclick="window.open('${prop.link}');"> <div class="bili-dyn-live-users__item__left"> <div class="bili-dyn-live-users__item__face-container"> <div class="bili-dyn-live-users__item__face"> <div class="bili-awesome-img" style="background-image: url(${prop.face.slice(6)}@47w_47h_1c.webp);"> </div> </div> </div> </div> <div class="bili-dyn-live-users__item__right"> <div class="bili-dyn-live-users__item__uname bili-ellipsis"> ${prop.uname} </div> <div class="bili-dyn-live-users__item__title bili-ellipsis"> ${prop.title} </div> </div> </div> ` } const init = async () => { let firstGet = await API.getLiver(); let liverNum = firstGet.count; if (liverNum > 10) { let liveUpListDom = document.querySelector('.bili-dyn-live-users__body'); liveUpListDom.innerHTML = ''; let allLiver = await API.getLiver(liverNum); // let addLiverItem = allLiver.items.slice(10); allLiver.items.forEach(item => { if (liveUpListDom !== null) { liveUpListDom.appendChild(Tool.s2d(getListItemTemplete(item))); } }); } } window.addEventListener( 'load', async () => { await init(); }, ) })();