// ==UserScript== // @name b站的收藏夹悬浮才显示的内容加个button点击全部显示,失效的视频显示up,支持跳转到up主页,支持视频跳转 // @namespace http://tampermonkey.net/ // @version 0.3 // @license MIT // @description 因为我需要看到作者,所以才想做这个功能 // @author xiaoxiami // @match https://space.bilibili.com/*/favlist?* // @icon https://ts1.cn.mm.bing.net/th/id/R-C.5f7657549f4bd16d08b56ccad794f01a?rik=%2bXBzOkKWIBMU8A&riu=http%3a%2f%2fwww.kuaipng.com%2fUploads%2fpic%2fw%2f2020%2f07-20%2f89190%2fwater_89190_698_698_.png&ehk=b6FaBHz%2bTBstG7fZg%2fGSVXCcCSqOw3pUcMIZr6QUdZg%3d&risl=&pid=ImgRaw&r=0 // @grant unsafeWindow // @grant GM_addStyle // @grant unsafeWindow // @connect api.bilibili.com // @grant GM_xmlhttpRequest // ==/UserScript== (function () { function request(url) { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ url: url, method: 'GET', headers: { cookie: document.cookie, }, onload: function (xhr) { let res = JSON.parse(xhr.responseText); resolve(res); }, }); }); } // 获取我们需要的网页上的dom function getDomList() { // 直接拿到页面显示的每个视频的li let liList = document.getElementsByClassName( 'fav-video-list clearfix content' )[0].childNodes; return liList; } // 获取url参数 function getUrlParam(name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参数 if (r != null) return unescape(r[2]); return null; //返回参数值 } // 判断当前页数 function judgePage() { let pages =document.getElementsByClassName("be-pager")[0].childNodes for (let item in pages) { if(pages[item].classList && pages[item].classList.length > 1){ let page = pages[item].innerText if(page == "上一页") return 1 return page } } } setTimeout(() => { // 默认是不显示的 let flag = false; let playPosition = document.getElementsByClassName('favInfo-details')[0]; let getHoverContent = ``; playPosition.insertAdjacentHTML('afterend', `${getHoverContent}`); let jianTingButton = document.getElementById('getHoverContent'); let jianTingDisplayUpButton = document.getElementById('displayUp'); jianTingDisplayUpButton.addEventListener('click', () => { // https://space.bilibili.com/778482303/favlist?fid=1590135214&ftype=create // 这里的778482303对应的就是用户id,1590135214对应的就是每个收藏夹的fid let fid = getUrlParam('fid'); // 判断当前是第几页 let page = judgePage() request(`https://api.bilibili.com/x/v3/fav/resource/list?media_id=${fid}&pn=${page}&ps=20&keyword=&order=mtime&type=0&tid=0&platform=web&jsonp=jsonp`).then((res) => { let { medias } = res.data let liList = getDomList() console.log(medias); // 拿到当前页收藏的up的视频list // https://space.bilibili.com/23207098 medias.map((media,index) => { if(media.title == "已失效视频") { let url = "https://space.bilibili.com/" + media.upper.mid let shipinUrl = "https://www.bilibili.com/" + media.bvid liList[index].innerHTML = `${media.upper.name}${media.intro}视频已失效,点击跳转其主页

当然你也可以点击此处跳到视频页确认一下

` } }) }).catch(err => { }) }); }, 2000); })(); // 参考文章https://www.jianshu.com/p/d3f5d9565886 GM_addStyle(` #getHoverContent { background-color: skyblue; height: 30px; } #displayUp { background-color: skyblue; height: 30px; } #getHoverContent+button { display:none } #upName { background-color: pink; } #shipinName { background-color: orange; } `);