Various tweaks to improve BGG.
目前為
// ==UserScript==
// @name Geeklist Tweaks
// @namespace tequila_j-script
// @version 0.5.0
// @description Various tweaks to improve BGG.
//
// @match https://boardgamegeek.com/geeklist/*
// @match https://www.boardgamegeek.com/geeklist/*
// @match http://boardgamegeek.com/geeklist/*
// @match http://www.boardgamegeek.com/geeklist/*
//
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @grant GM_addStyle
// ==/UserScript==
GM_addStyle("\
div.t-nav-container {\
position: absolute;\
//top: 0px;\
//right: -35px;\
top: -2px;\
right: 0px;\
background-color: rgba(200,200,255,0.4);\
border-radius: 5px;\
//opacity: 0.5;\
width: 48px;\
//height: 50px;\
text-align: center;\
padding: 5px 5px;\
opacity: 0.4;\
}\
div.t-nav-container:hover {\
opacity: 0.95;\
}\
div.t-nav-container i.fa {\
font-size: 20px;\
padding: 0px 3px;\
cursor: pointer;\
}\
\
div.box-new-items:hover {\
opacity: 1;\
}\
div.box-new-items {\
position: fixed;\
bottom: 0px;\
/* height: 20px; */\
background-color: lightgray;\
right: 7px;\
font-size: xx-small;\
padding: 2px 5px;\
border-radius: 3px;\
opacity: 0.7;\
}\
");
$(document).ready(function() {
'use strict';
/*jshint multistr: true */
$("head").append (
'<link href="//cdn.bootcss.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css">'
);
//lets find items, excluding multiple comments
var newItems = [];
var geekItems = $('div.mb5');
for (var i=0; i < geekItems.length; i++) {
var thisGI = $(geekItems[i]);
var newSI = thisGI.find('div.subbed_selected,div.subbed');
var firstIsGeekItem = false;
if (newSI.length > 0) {
var el = newSI[0];
newItems.push(newSI[0]);
firstIsGeekItem = $(el).attr('data-objecttype') == "listitem";
}
if (newSI.length > 1 && firstIsGeekItem) {
newItems.push(newSI[1])
}
}
// console.log('New items in geeklists:' + newItems.length);
//we will try to find comments at the end of the page also
var pageComments = $('div.mb5:first').parent().children('div:not(.mb5)').find('div.comment_ctrl').find('div.subbed_selected,div.subbed');
console.log(pageComments);
if (pageComments.length > 0) {
newItems.push(pageComments[0]);
// console.log("New page comments also ");
}
// console.log("Size: " + newItems.length);
var iconUp = $('<i class="fa fa-caret-square-o-up" aria-hidden="true"></i>');
var iconDown = $('<i class="fa fa-caret-square-o-down" aria-hidden="true"></i>');
var iconBox = $('<div class="t-nav-container"></div>');
$(newItems).each(function(index) {
var thisItem = $(this);
thisItem.css('position','relative');
var iconContainer = iconBox.clone();
thisItem.append(iconContainer);
thisItem.find("dl.commentbody > dd.right").css("padding-right","40px");
//go up
if (index != 0) {
var upI = iconUp.clone();
upI.click(function () {
$("html, body").animate({ scrollTop: $(newItems[index - 1]).offset().top }, "fast");
return false;
});
iconContainer.append(upI);
} else {
iconContainer.append(iconDown.clone().css('visibility','hidden'));
}
//go down
if (index != newItems.length - 1) {
var downI = iconDown.clone();
downI.click(function () {
$("html, body").animate({ scrollTop: $(newItems[index + 1]).offset().top }, "fast");
return false;
});
iconContainer.append(downI);
} else {
iconContainer.append(iconUp.clone().css('visibility','hidden'));
}
});
//lets see if this is a selected article. If not, We can scroll to the top of the list
if ($("div.article.selected").length == 0) {
$("html, body").scrollTop($(newItems[0]).offset().top);
}
//puts a small box saying how many new items are here:
var news = $(document.createElement("div")).addClass("box-new-items");
$("body").append(news);
news.html("New items in this page: " + $('div.subbed_selected,div.subbed').length);
});