您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
用于在 Bangumi 目录页与排行榜页显示更多信息
// ==UserScript== // @name Tell Me More! // @namespace http://tampermonkey.net/ // @version 0.4 // @description 用于在 Bangumi 目录页与排行榜页显示更多信息 // @author AnoZZ // @match *://bgm.tv/anime/browser* // @match *://bgm.tv/anime/list* // @match *://bgm.tv/index/* // @match *://bangumi.tv/anime/browser* // @match *://bangumi.tv/anime/list* // @match *://bangumi.tv/index/* // @match *://chii.in/anime/browser* // @match *://chii.in/anime/list* // @match *://chii.in/index/* // @icon http://bgm.tv/img/favicon.ico // @run-at document-end // @grant GM_xmlhttpRequest // @grant GM_addStyle // @require http://code.jquery.com/jquery-3.2.1.slim.min.js // ==/UserScript== (function() { 'use strict'; var pathname = window.location.pathname; var page = pathname.split('/')[1]; if(page == "anime"){ page = pathname.split('/')[2]; } GM_addStyle(` .tmm-detail { float:left; box-shadow: 1px 1px 1px #888888; height:12px; } .tmm-left { border-top-left-radius:5px; border-bottom-left-radius:5px; } .tmm-right { border-top-right-radius:5px; border-bottom-right-radius:5px; } .tmm-detail .tmm-tooltip { background: #fff; bottom: -16px; display: inline; font-size: 8px; padding: 5px; position: relative; opacity: 0; box-shadow: 1px 1px 1px #888888; z-index: 1; white-space: nowrap; text-align: center; transition: opacity 0.5s; } .tmm-detail .tmm-tooltip:after { border-left: solid transparent 5px; border-right: solid transparent 5px; border-bottom: solid #fff 5px; top: -5px; content: " "; height: 0; left: 50%; margin-left: -5px; position: absolute; width: 0; z-index: 1; } .tmm-detail:hover .tmm-tooltip { opacity: 1; } `); var items = $('li.item'); for(var i=0; i<items.length; i++){ var item = items[i]; var url = $(item).children('a')[0].href; var id=item.id; var urlBreak = url.split('/'); var subjectId = urlBreak[urlBreak.length-1]; var valueLocal = JSON.parse(localStorage.getItem("bgm_"+subjectId)); if (!valueLocal || valueLocal.expires < Date.now()) { localStorage.removeItem("bgm_"+subjectId); GM_xmlhttpRequest({ method: 'GET', url: url, headers: { 'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey', 'Accept': 'application/atom+xml,application/xml,text/xml', }, onload: callback(id, page, subjectId) }); }else { draw(valueLocal.want, valueLocal.on, valueLocal.ever, valueLocal.leave, valueLocal.drop, valueLocal.rank, valueLocal.score, id, page); } } function callback(id, page, subjectId){ return function(data){ var stat = $(data.responseText).find('div#subjectPanelCollect span.tip_i a'); var want = 0, on = 0, ever = 0, leave = 0, drop = 0; for (var i = 0; i < stat.length; i++) { if (stat[i].innerText.search('想看') > -1) { want = parseInt(stat[i].innerText); }else if (stat[i].innerText.search('在看') > -1) { on = parseInt(stat[i].innerText); }else if (stat[i].innerText.search('看过') > -1) { ever = parseInt(stat[i].innerText); }else if (stat[i].innerText.search('搁置') > -1) { leave = parseInt(stat[i].innerText); }else if (stat[i].innerText.search('抛弃') > -1) { drop = parseInt(stat[i].innerText); } } var rank, score; var rank_score = $(data.responseText).find('div.global_score'); rank = rank_score.find('small')[1].innerText; score = rank_score.find('span.number')[0].innerText; var exp = new Date(); localStorage.setItem( "bgm_"+subjectId, JSON.stringify({ "want": want,"on": on,"ever": ever,"leave": leave, "drop": drop,"rank": rank,"score": score, expires: exp.getTime() + 7 * 24 * 60 * 60 * 1000 }) ); draw(want, on, ever, leave, drop, rank, score, id, page); }; } function draw(want, on, ever, leave, drop, rank, score, id, page){ var count = (want + on + ever + leave + drop)/100; if(page != "browser"){ $( '<div style="float:right;padding-right:50px;">'+ '<span style="color:#666">Rank: ' + rank + ' </span>'+ '<span style="color:#666">Score: ' + score + '</span></div>' ).insertAfter($('#'+id).find('div.inner h3 a')); } $( '<div style="width:auto;padding-top:3px;max-width:550px">'+ '<div class="tmm-detail tmm-left" style="width:'+ (want/count).toString()+ '%;background:#22cefe;"> <div class="tmm-tooltip">' + (want).toString()+ '人想看</div></div><div class="tmm-detail" style="width:'+ (on/count).toString()+ '%;background:#7bf08a;"> <div class="tmm-tooltip">' + (on).toString()+ '人在看</div></div><div class="tmm-detail" style="width:'+ (ever/count).toString()+ '%;background:#ffc233;"> <div class="tmm-tooltip">' + (ever).toString()+ '人看过</div></div><div class="tmm-detail" style="width:'+ (leave/count).toString()+ '%;background:#ff9124;"> <div class="tmm-tooltip">'+ (leave).toString()+ '人搁置</div></div><div class="tmm-detail tmm-right" style="width:'+ (drop/count).toString()+ '%;background:#ff3d67;"> <div class="tmm-tooltip">'+ (drop).toString()+ '人抛弃</div></div><div style="clear:both;"/></div>' ).insertAfter($('#'+id + ' div.inner').children().last()); } $('.tmm-detail').hover(function(){ var tooltip = $(this).children().first(); var pos =$(this).offset().left + ($(this).width() - tooltip.width()) / 2; tooltip.offset({ left: pos }); }); })();