理系学生日記

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

忍者TOOLS

さっそく RILDRize を更新しました

今日つくりはじめて今日 commit した、Read It Later に pin 機能を追加する UserScript (RILDRize) ですが、いきなし更新が入りました。

Read It Later では、一度にエントリを 10 個表示します。そしてエントリを読む(既読化する)毎に、未読エントリのみが画面上に残るという UI になっています。
これを繰り返すと最終的に未読エントリが 0 になり、画面をリロードしなければ新しいエントリが読めません。このリロードを少しでも楽にするために r (reload) のショートカットを定義していたのですが、よく考えるとピンをオープンしたタイミングで、立てているピンが残り 0 本である場合にリロードするようにすれば、ユーザから見るとシームレスに次のエントリが読めるようになることに気付きました。
というわけで、そういう実装に変更しています。

diff --git a/rildrize.user.js b/rildrize.user.js
index 95c8c8c..52a11ab 100644
--- a/rildrize.user.js
+++ b/rildrize.user.js
@@ -80,6 +80,10 @@
         currentPos = 0;
         currentItem = entryList[currentPos];
         toggleClassName(currentItem, CLASS_CURRENT);
+
+        if ( pins.isEmpty() ) {
+            window.location.reload(true);
+        }
     }

     function addGlobalStyle(css) {
@@ -183,6 +187,9 @@
                 delete data[id];
             });
         },
+        isEmpty: function() {
+            return this.idList.length == 0;
+        },
         toString: function() {
             var keys = [];
             for ( var prop in this.data ) {