// ==UserScript== // @name 显示哔哩哔哩番剧出差 // @namespace http://tampermonkey.net/ // @version 0.1.10 // @description 动态页面显示哔哩哔哩番剧出差 // @author 溶酶菌 // @match *://t.bilibili.com* // @icon https://www.bilibili.com/favicon.ico // @grant none // @downloadURL none // ==/UserScript== (function () { 'use strict'; let offset = '' function dateFormat(fmt, date) { let ret; const opt = { "Y+": date.getFullYear().toString(), // 年 "m+": (date.getMonth() + 1).toString(), // 月 "d+": date.getDate().toString(), // 日 "H+": date.getHours().toString(), // 时 "M+": date.getMinutes().toString(), // 分 "S+": date.getSeconds().toString() // 秒 // 有其他格式化字符需求可以继续添加,必须转化成字符串 }; for (let k in opt) { ret = new RegExp("(" + k + ")").exec(fmt); if (ret) { fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0"))) }; }; return fmt; } let loadData = function () { let originCt = document.querySelector("#app > div > div.home-page.f-clear > div.home-container > div > div.center-panel > div.card-list > div.feed-card > div:nth-child(2)") originCt.style.display = 'none' fetch(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_dyn_personal?host_uid=11783021&offset=${offset}`, { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", "sec-ch-ua": "\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"", "sec-ch-ua-mobile": "?0", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-site" }, "referrer": "https://t.bilibili.com/", "referrerPolicy": "strict-origin-when-cross-origin", "body": null, "method": "GET", "mode": "cors", "credentials": "include" }).then(res => res.json()) .then(res => { let adct = document.querySelector('.addtional-content') let str = ''; offset = res.data.offset res.data.cards.forEach(card => { let face = card.desc.user_profile.info.face let uname = card.desc.user_profile.info.uname let action = card.display.usr_action_txt let time = new Date(1625942281) let vCard = JSON.parse(card.card) let { pic, redirect_url, title } = vCard let { coin, danmaku, dislike, favorite, his_rank, like, now_rank, reply, share, view } = vCard.stat let itemDom = `
番剧
${action}
${share}
${reply}
${like}
` let cardWrap = document.createElement('div') cardWrap.innerHTML = itemDom adct.append(cardWrap) }); }); } window.onload = function () { let fc = document.querySelector("#app > div > div.home-page.f-clear > div.home-container > div > div.center-panel > div.card-list > div.feed-card") if (!fc) { return } let additonalContent = document.createElement('div') additonalContent.classList.add('addtional-content') additonalContent.classList.add('content') additonalContent.style.display = 'none' fc.append(additonalContent) let loadMore = document.createElement('div') loadMore.style.display = 'none' loadMore.innerHTML = `
加载更多
` fc.append(loadMore) let actionbar = document.createElement('div') actionbar.innerHTML = `
哔哩哔哩番剧出差
显示
` let left = document.querySelector("#app > div > div.home-page.f-clear > div.home-container > div > div.left-panel > div.adaptive-scroll > div.scroll-content") left.append(actionbar) setTimeout(() => { let showBtn = document.querySelector('#show-abroad') let hideBtn = document.querySelector('#hide-abroad') let loadMoreBtn = document.querySelector('#load-more-btn') let mostViewPanel = document.querySelector("#app > div > div.home-page.f-clear > div.home-container > div > div.center-panel > div.card-list > div.most-viewed-panel") let tabbar = document.querySelector("#app > div > div.home-page.f-clear > div.home-container > div > div.center-panel > div.card-list > div.feed-card > div.tab-bar") let content = document.querySelector("#app > div > div.home-page.f-clear > div.home-container > div > div.center-panel > div.card-list > div.feed-card > div.content") let backtop = () =>document.querySelector("#app > div > div.home-page.f-clear > div.back-top").click() showBtn.onclick = function () { content.style.display = 'none' additonalContent.style.display = 'block' showBtn.style.display = 'none' hideBtn.style.display = 'inline' mostViewPanel.style.display = 'none' tabbar.style.display = 'none' loadMore.style.display = 'block' backtop() loadData() } hideBtn.onclick = function () { content.style.display = 'block' additonalContent.style.display = 'none' showBtn.style.display = 'inline' hideBtn.style.display = "none" loadBtn.style.display = 'none' mostViewPanel.style.display = 'flex' tabbar.style.display = 'block' loadMore.style.display = 'none' backtop() } loadMoreBtn.onclick = loadData }, 0) } })();