WykopSeen

Add Seen button to hide seen wykops

当前为 2015-01-04 提交的版本,查看 最新版本

// ==UserScript==
// @name         WykopSeen
// @namespace    http://www.wykop.pl/
// @version      0.2
// @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
// @require      http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js
// ==/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());
  btn.text(getSeenBtnText()).on('click', btnOnClick);
  self.children('div').append(btn);
}
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');
}

jq(document.body).append(jq('<style type=\'text/css\'></style>').html(cssRules()));

jq('#itemsStream li').each(eachLi);