nerqyn / Ukryj mirko

// ==UserScript==
// @name        Ukryj mirko 
// @namespace   http://www.wykop.pl/mikroblog/*
// @include     http://www.wykop.pl/mikroblog/*
// $include     http://www.wykop.pl/wpis/*
// @version     1.0.2
// @grant       none
// @require     https://cdn.rawgit.com/carhartl/jquery-cookie/v1.4.1/jquery.cookie.js
// ==/UserScript==

(function() {
//   Połóżenie przycisku 'ukryj'
//   Możliwe opcje: 'dol', 'gora'
var polozenie_przycisku = 'dol';


// Get cookie
var cookie = new cookie_array('ukryj_mirko_posts_id', { expires: 7, path: '/'});
var cookie_links = new cookie_array('ukryj_mirko_links', { expires: 7, path: '/'});

// Add 'ukryj link'
// var link = '<li class=\'ukryj-wpis\'><a class=\'hide\' href=\'\'><i class=\"fa fa-trash-o\"></i> ukryj</a></li>';		
// $('.entry.iC').find('.responsive-menu:first').append(link);
// Add 'ukryj link'
if (polozenie_przycisku == 'dol') {
  var link = '<li class=\'ukryj-wpis\'><a class=\'hide\' href=\'\'><i class=\"fa fa-trash-o\"></i> ukryj</a></li>';		
  $('.entry.iC').find('.responsive-menu:first').append(link);
}
else if (polozenie_przycisku == 'gora') {
  $('.entry.iC').find('div:first .vC').prepend('<a class=\'ukryj-wpis\' href=\'\'><i class=\"fa fa-trash-o\"></i> ukryj</a>');
}
  
  
  
  
  
// Add menu in right panel
$('.grid-right').prepend('<div class=\'r-block\'><h4>Ukryte wpisy <a id=\'rozwin-ukryte-wpisy\' href=\'\'><i class=\"fa fa-chevron-down\"></i></a>  </h4><ul id=\'ukryte-wpisy-linki\'</ul></div>');
// Hide links
$('#ukryte-wpisy-linki').hide();

var links = cookie_links.getArray();

if (links !== null) {
  for (var i = 0; i < links.length; i++) {
    addLink(links[i]);  
  }
} 
  
  
// Click on that link
$('.ukryj-wpis').on('click', '', function(e) {
  e.preventDefault();
  var wpis = $(this).parent().parent().parent().parent();

//   Set cookies
  if (cookie.add(wpis.data('id'))) {
    var link = wpis.find('a').eq(3).attr('href');
    addLink(link);
    cookie_links.add(link);
  }
  
//  Hide post  
  wpis.parent().hide();
});
 
  
// Hide posts from cookie
function hideAllFromCookie() {
  var posts_id = cookie.getArray();
  
  if (posts_id == null) {
     return false;
  }
  
//   Loop for all posts
  var posts = $('.entry.iC .wblock.dC');
  
  posts.each(function(i, post) { 
    if (posts_id.indexOf(String($(post).data('id'))) !== -1) {
       $(post).parent().hide(); 
    }
  });
}
 
// Don't hide in www.wykop.pl/wpis/*
var url = window.location.href;
if (url.search('wykop.pl/wpis/') == -1) {
  hideAllFromCookie();
}

// Cookie array class
function cookie_array(name, settings) {
  this.name = name;
  this.settings = settings; 
    
  this.add = function(data) {
    var array = this.getArray();
    
    if (array == null) {
      $.cookie(this.name, [$.cookie(this.name), data], this.settings);
      return true;
    }
    
    else {
//       Don't allow to duplicate data
      if (array.indexOf(String(data)) == -1) {
        $.cookie(this.name, [$.cookie(this.name), data], this.settings);
        return true;
      }
      
      else {
        return false;
      }
    }
    
    return false;
  }
  
  this.print = function() {
    console.log($.cookie(this.name));
  }
  
  this.getArray = function() {
    return typeof $.cookie(this.name) !== 'undefined' ? $.cookie(this.name).split(',') : null;
  }
  
  this.deleteCookie = function() {
    $.removeCookie(this.name, this.settings);
  }
}
  
function addLink(link) {
  $('#ukryte-wpisy-linki').append('<li><a href=\'' + link + '\'>' + link + '</a></li>');
 
}

// Rozwiń wpisy
$('#rozwin-ukryte-wpisy').on('click', '', function(e) {
  e.preventDefault();
  var t = $(this);
  t.children(':first').toggleClass('fa-chevron-down fa-chevron-up');
  $('#ukryte-wpisy-linki').toggle();
});

// cookie.deleteCookie();
// cookie_links.deleteCookie();
})(jQuery);