// ==UserScript== // @name Bangumi 条目排序 // @namespace https://github.com/bangumi/scripts/liaune // @version 1.1 // @description 对条目列表进行按排名、人数、评分、时间排序 // @author Liaune // @include /^https?://(bangumi\.tv|bgm\.tv|chii\.in)/(.+?/tag|.+?/browser|subject_search)(/|\?).+/ // @grant none // @downloadURL 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 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); 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