今日つくりはじめて今日 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 ) {