読者です 読者をやめる 読者になる 読者になる

理系学生日記

おまえはいつまで学生気分なのか

忍者TOOLS

RILDRize 更新

javascript

更新点としては以下の 2 点です。

  • ピンを立てた記事のエントリを開くことなく消去するときに、合わせてピン情報も消去するようにした
  • リロードの動作を変更

ピンを立てたエントリを開くことなく消去するときに、合わせてピン情報も消去するようにした

RILDRize では、立てたピンの情報は極めて安直な形でメモリ上に保持するようにしています。エントリ情報を 'x' キーで(エントリを開くことなく)削除する場合において、このピン情報の削除を忘れていたため、エントリを消したはずなのにピンを開くときに当該エントリが開かれるというバグがありました。今回はこれを修正してます。使ってるうちに気付きましたが、わりと放置してました。はい。

リロードの動作を変更

リロードした際は、ページ番号を 1 まで戻すようにしました。
もともと、このリロード機能は、閲覧していた Read It Later 上のページに読むべきエントリがなくなったときに読むエントリを補充するために付けていたため、リロード後においても、見ていたページを引き継ぐようにしていました。
しかし、この動作は次のような場合に問題を生じます。

前提: Read it Later は 1 ページに 10 エントリを表示する
問題を生じる場合:

  1. 2 ページ目で 10 エントリ中 5 エントリを消化
  2. 3 ページ目で 10 エントリ中 10 エントリを消化
  3. この後にリロード

このケースでは、未読のはずのエントリ(リロード前は 4 ページ目にあったエントリ)は 2 ページ目にあるにも関わらず、3 ページ目に遷移してしまいます。これはよくない。
そういうわけですので、リロードしたときは強制的に 1 ページ目に戻すようになります。はい。

diff

diff --git a/rildrize.user.js b/rildrize.user.js
index 815501b..2c97da1 100644
--- a/rildrize.user.js
+++ b/rildrize.user.js
@@ -65,11 +65,14 @@
     }

     function remove() {
-        makeRead( entryList[currentPos] );
+        var currentItem = entryList[currentPos];
+        pins.remove(currentItem);
+        makeRead(currentItem);
     }

     function reload() {
-        window.location.reload(true);
+        var page = document.getElementById("page");
+        next(-page.value + 1);
     }

     function next(n) {