Nico:ranking_eve_filter

ニコニコ動画のランキングで直前にみたランキングと比較して、被ったものを非表示にする。

// ==UserScript==
// @name            Nico:ranking_eve_filter
// @namespace       http://web.zgo.jp/
// @author          azu
// @include         http://www.nicovideo.jp/ranking/*
// @description     ニコニコ動画のランキングで直前にみたランキングと比較して、被ったものを非表示にする。
// @version 0.0.1.20140518104307
// ==/UserScript==
(function(){
function getElementsByXPath(xpath, node) {
	var node = node || document
	var nodesSnapshot = document.evaluate(xpath, node, null,
	XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
	var data = []
	for (var i = 0; i <nodesSnapshot.snapshotLength; i++) {
	data.push(nodesSnapshot.snapshotItem(i))
	}
	return (data.length>= 1) ? data : null
}
function ranking_view_load(){
	var list=GM_getValue("all_ranking_view");
	return list? list.split(/,/):[];
}
var d = document;
var __closevalue = "元に戻す";
var __openvalue  = "見たものを隠す";

var arrayNo = [];
var preArrayNo = ranking_view_load();
arrayNo = getElementsByXPath('//div[@class="data_left"]/p[1]/span[1]/text()',d);//動画番号
saveNo = [];
for(var h in arrayNo){
    saveNo.push(arrayNo[h].nodeValue);
}
GM_setValue("all_ranking_view", saveNo.join(","));

function hideReview(){
  if(input_run.value == __openvalue){
  input_run.value = __closevalue;
    for(var i=0, l = arrayNo.length;i<l;i++){
      for(var j=0,ll = preArrayNo.length;j<ll;j++){
        if (arrayNo[i].nodeValue == preArrayNo[j]){
          var tmp = arrayNo[i].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
          tmp.style.display = "none";
          //console.log(arrayNo[i].nodeValue +" == " +preArrayNo[j]);
        }
      }
    }
  }else{
    input_run.value = __openvalue;
    for(var i=0, l = arrayNo.length;i<l;i++){
      var tmp = arrayNo[i].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
      tmp.style.display = "block";
    }
  }
}

var tr_sort = d.evaluate('id("PAGEBODY")//a[@class="switch_1"]', d, null, 9, null).singleNodeValue;
var input_run = d.createElement("input");
  	input_run.type = "button";
  	input_run.className = "submit";
  	input_run.value = __openvalue;
  	input_run.addEventListener("click", hideReview, false);
tr_sort.parentNode.appendChild(input_run);
//var td_rank = d.evaluate('id("PAGEBODY")//table[2]/tbody/tr/td[2]', d, null, 9, null).singleNodeValue;

})();