您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
对条目列表进行按排名、人数、评分、时间排序,并可以按人数、时间筛选
// ==UserScript== // @name Bangumi 条目排序 // @namespace https://github.com/bangumi/scripts/liaune // @version 1.3 // @description 对条目列表进行按排名、人数、评分、时间排序,并可以按人数、时间筛选 // @author Liaune // @include /^https?://(bangumi\.tv|bgm\.tv|chii\.in)/(.+?/tag|.+?/browser|subject_search)(/|\?).+/ // @grant none // ==/UserScript== (function() { let sortstyle = -1, sortstyle1 = 1,sortstyle2 = 1,sortstyle3 = -1; //按排名排序 const showBtn = document.createElement('a'); showBtn.addEventListener('click', SortByRank); showBtn.className = 'chiiBtn'; showBtn.href='javascript:;'; showBtn.textContent = '排名排序';document.querySelector('#browserTools').append(showBtn); //按评分人数排序 const showBtn1 = document.createElement('a'); showBtn1.addEventListener('click', SortByVote); showBtn1.className = 'chiiBtn'; showBtn1.href='javascript:;'; showBtn1.textContent = '人数排序';document.querySelector('#browserTools').append(showBtn1); //按人数筛选 const voteRange = document.createElement('input');voteRange.addEventListener('blur',Select);voteRange.className = 'textfield';$(voteRange).css({"width":"30px","height":"15px"});document.querySelector('#browserTools').append(voteRange);$(voteRange).hide(); const voteRange1 = document.createElement('input');voteRange1.addEventListener('blur',Select);voteRange1.className = 'textfield';$(voteRange1).css({"width":"30px","height":"15px"});document.querySelector('#browserTools').append(voteRange1);$(voteRange1).hide(); //按评分排序 //const showBtn2 = document.createElement('a'); showBtn2.addEventListener('click', SortByPoint); showBtn2.className = 'chiiBtn'; showBtn2.href='javascript:;'; showBtn2.textContent = '评分排序';document.querySelector('#browserTools').append(showBtn2); //按时间排序 const showBtn3 = document.createElement('a'); showBtn3.addEventListener('click', SortByTime); showBtn3.className = 'chiiBtn'; showBtn3.href='javascript:;'; showBtn3.textContent = '时间排序';document.querySelector('#browserTools').append(showBtn3); //按时间筛选 const timeRange = document.createElement('input');timeRange.addEventListener('blur',Select);timeRange.className = 'textfield';$(timeRange).css({"width":"60px","height":"15px"});document.querySelector('#browserTools').append(timeRange);$(timeRange).hide(); const timeRange1 = document.createElement('input');timeRange1.addEventListener('blur',Select);timeRange1.className = 'textfield';$(timeRange1).css({"width":"60px","height":"15px"});document.querySelector('#browserTools').append(timeRange1);$(timeRange1).hide(); function ParseRank(rankstring){ let rank = rankstring.match(/Rank (\d{1,4})/)? rankstring.match(/Rank (\d{1,4})/)[1]: 9999; return rank; } function ParseVote(votestring){ let vote = votestring.match(/(\d{1,5})人评分/)? votestring.match(/(\d{1,5})人评分/)[1]: 0; return vote; } function ParseDate(Datestring){ let yy = Datestring.match(/(\d{4})/)? Datestring.match(/(\d{4})/)[1].toString():'1000'; Datestring = Datestring.match(/(\d{4})(年|-)(\d{1,2})(月|-)(\d{1,2})/); let year = Datestring ? Datestring[1].toString(): yy; let month = Datestring ? Datestring[3].toString(): '01'; let day = Datestring ?Datestring[5].toString(): '01'; let date= new Date(year+'/'+month+'/'+day); let now = new Date(); return now.getTime()-date.getTime(); } function SortByRank() { let itemsList = document.querySelectorAll('#browserItemList li.item'); sortstyle = (sortstyle==1)? -1 :1; showBtn.textContent = (showBtn.textContent=='排名排序↑') ? '排名排序↓':'排名排序↑'; let container = document.querySelector('ul#browserItemList'); let arr=[]; for(let i=0;i<itemsList.length;i++) arr[i]=itemsList[i]; arr.sort(function(li1,li2){ let n1=li1.querySelector('.inner .rank')? ParseRank(li1.querySelector('.inner .rank').textContent): 9999; let n2=li2.querySelector('.inner .rank')? ParseRank(li2.querySelector('.inner .rank').textContent): 9999; return (n1-n2)*sortstyle;}); for(let i=0; i<arr.length; i++) $('#browserItemList').append(arr[i]); } function SortByVote() { $(voteRange).show();$(voteRange1).show(); let itemsList = document.querySelectorAll('#browserItemList li.item'); sortstyle1 = (sortstyle1==-1)? 1 :-1; showBtn1.textContent = (showBtn1.textContent=='人数排序↓') ? '人数排序↑':'人数排序↓'; let container = document.querySelector('ul#browserItemList'); let arr=[]; for(let i=0;i<itemsList.length;i++) arr[i]=itemsList[i]; arr.sort(function(li1,li2){ let n1=li1.querySelector('.inner .rateInfo .tip_j')? ParseVote(li1.querySelector('.inner .rateInfo .tip_j').textContent): 0; let n2=li2.querySelector('.inner .rateInfo .tip_j')? ParseVote(li2.querySelector('.inner .rateInfo .tip_j').textContent): 0; return (n1-n2)*sortstyle1;}); for(let i=0; i<arr.length; i++) $('#browserItemList').append(arr[i]); } function SortByPoint() { let itemsList = document.querySelectorAll('#browserItemList li.item'); sortstyle2 = (sortstyle2==-1)? 1 :-1; showBtn2.textContent = (showBtn2.textContent=='评分排序↓') ? '评分排序↑':'评分排序↓'; let arr=[]; for(let i=0;i<itemsList.length;i++) arr[i]=itemsList[i]; arr.sort(function(li1,li2){ let n1=li1.querySelector('.inner .fade')? parseFloat(li1.querySelector('.inner .fade').innerHTML): 0; let n2=li2.querySelector('.inner .fade')? parseFloat(li2.querySelector('.inner .fade').innerHTML): 0; if(n1==n2){ let n11=li1.querySelector('.inner .rank')? ParseRank(li1.querySelector('.inner .rank').textContent): 9999; let n22=li2.querySelector('.inner .rank')? ParseRank(li2.querySelector('.inner .rank').textContent): 9999; return (n22-n11)*sortstyle2; } else return (n1-n2)*sortstyle2; }); for(let i=0; i<arr.length; i++) $('#browserItemList').append(arr[i]); } function SortByTime() { $(timeRange).show();$(timeRange1).show(); let itemsList = document.querySelectorAll('#browserItemList li.item'); sortstyle3 = (sortstyle3==-1)? 1 :-1; showBtn3.textContent = (showBtn3.textContent=='时间排序↓') ? '时间排序↑':'时间排序↓'; let container = document.querySelector('ul#browserItemList'); let arr=[]; for(let i=0;i<itemsList.length;i++) arr[i]=itemsList[i]; arr.sort(function(li1,li2){ let n1=li1.querySelector('.inner .info')? ParseDate(li1.querySelector('.inner .info').textContent): 0; let n2=li2.querySelector('.inner .info')? ParseDate(li2.querySelector('.inner .info').textContent): 0; return (n1-n2)*sortstyle3; }); for(let i=0; i<arr.length; i++) $('#browserItemList').append(arr[i]); } function Select(){ let itemsList = document.querySelectorAll('#browserItemList li.item'); itemsList.forEach( (elem, index) => { $(elem).show(); let time = elem.querySelector('.inner .info')? ParseDate(elem.querySelector('.inner .info').textContent): 0; let mintime = timeRange.value !="" ? ParseDate(timeRange.value):ParseDate("1000-1-1"); let maxtime = timeRange1.value !="" ? ParseDate(timeRange1.value):ParseDate("3000-1-1"); let vote = elem.querySelector('.inner .rateInfo .tip_j')? ParseVote(elem.querySelector('.inner .rateInfo .tip_j').textContent): 0; let minvote = voteRange.value !="" ? parseInt(voteRange.value):0; let maxvote = voteRange1.value !="" ? parseInt(voteRange1.value):20000; if(time>mintime || time<maxtime || vote<minvote || vote>maxvote) $(elem).hide(); }); } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址