フレッシュリーダーに「未読を全て開く」機能を追加する

livedoor Readerなどの新手のRSSリーダーが登場しても全く機能改善されないせいか、今では全く注目されていないFreshReader。ですが、サーバーインストール型で有償のため、利用している方もいるかと思います。
かく言う自分はlivedoor ReaderFreshReaderを併用していたのですが、livedoor Readerの巡回間隔の遅さにだんだん嫌気が差してきたので、巡回間隔で無理が効くFreshReaderへの機能追加を思い立ちました。とは言っても真面目にピン機能を実装するのは大変なので、とりあえず「ページ内の未読リンクを全て開く」機能を付けただけです。
頑張ればピン機能も付けられそうですが、自分ではそういう使い方をしないので....

手順

手順は以下の通りです。

  1. FreshReaderをインストールしたディレクトリの下に「plugin」ディレクトリを作成します。
  2. pluginディレクトリの中に、以下の内容で「plugin.txt」ファイルを作成します。文字コードUnicodeです。
----ここから
<style>
  div.visited_check {
   position:relative !important;
   top:-10000px !important;
  }
  a.visited_check:visited {
   display:none !important;
  }
  a.visited_check {
  }
</style>
<script language="JavaScript">
var runonce;
if(!runonce){
  runonce = true;
  var div = document.createElement('div');
  div.className = 'visited_check';
  document.body.appendChild(div);
  var nonvisited_links = Array();
  var links_check = Array();
}

function isVisited(url) {
  div.innerHTML = '<a href="' + url + '" class="visited_check">string</a>';
  var visited = true;
  if(this.div.childNodes[0].offsetWidth > 0) visited = false;
  return visited;
}

if(!isVisited("${url}") && !links_check["${url}"]){
  nonvisited_links.unshift("${url}");
  links_check["${url}"]="${url}";
}

function openAll() {
  var c;
  var i;
  var n=nonvisited_links;
  for(i=0;i<n.length;i++){
   if(!isVisited(n[i])){
    window.open(n[i]);
    c++;
    if(c>=100){
     break;
    }
   }
  }
}
</script>
<a href="" onClick="openAll();return false;">未読開く</a>
----ここまで

めんせき

  • 実装が汚いとか言わないで
  • 需要が無いとか言わないで
  • エントリ全部の尻に「未読開く」のリンクが出来るのカッコ悪いとか言わないで
  • Firefoxでしか確認してません。IEOperaSafariもどうでもいいので
  • まぁ誰も気づかないからいいかどうでも