Add Seen button to hide seen wykops
目前為
// ==UserScript==
// @name WykopSeen
// @namespace http://www.wykop.pl/
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @version 0.3
// @description Add Seen button to hide seen wykops
// @author axem.pl
// @match http://www.wykop.pl/
// @match http://www.wykop.pl/wykopalisko/*
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_deleteValue
// ==/UserScript==
var jq = this.$ = this.jQuery = jQuery.noConflict(true);
function eachLi() {
var self = jq(this);
var parent = self.parent();
var btn = jq('<button class=\'seen-btn\'></button>');
var seenWykopClass = 'seen';
var href = self.find('h2 a').attr('href');
function getSeenBtnText() {
if (self.hasClass(seenWykopClass)) {
return 'UNSEE';
} else {
return 'SEEN';
}
}
function btnOnClick() {
self.toggleClass(seenWykopClass);
btn.text(getSeenBtnText());
if (self.hasClass(seenWykopClass)) {
GM_setValue(href, 1);
parent.append(self);
} else {
GM_deleteValue(href);
parent.prepend(self);
}
}
if (GM_getValue(href)) {
self.addClass(seenWykopClass);
parent.append(self);
}
btn.text(getSeenBtnText());
self.children('div').append(btn);
btn.on("click", btnOnClick);
}
function cssRules() {
var rules = [
'li.seen { background: lightgray }',
'li.seen * { color: gray !important }',
'li.seen .diggbox { display: none }',
'li.seen .media-content { display: none }',
'li.seen .fix-tagline { display: none }',
'li.seen .description { display: none }',
'li.seen .elements { display: none }',
'li.seen .article { min-height: 0 }',
'.seen-btn { position: absolute; top: 5px; right: 5px; z-index: 9999 }'
];
return rules.join('\n');
}
function exec() {
jq(document.body).append(jq('<style type=\'text/css\'></style>').html(cssRules()));
var wykops = jq('#itemsStream li');
for (var i = 0, iLen = wykops.length; i < iLen; ++i) {
var x = wykops[i];
eachLi.call(x);
}
jq('#itemsStream li').each(eachLi);
}
exec();