松尾です。

timelineを破棄しないための commit
6a499dfff6e2e943ee45146709f1f00ecbbc0489
には、timelineの内容が混ざる場合があるようです。

これは global変数 twittering-timeline-data を
twittering-get-and-render-timeline の時点で設定している
ためです。

twittering-get-and-render-timeline では指定された spec が
twittering-last-retrieved-timeline-spec-string と違う
ときに twittering-timeline-data が変更されています。

この実装で下記の手順を踏むと":mentions"のtimelineに
":home"のtimelineの内容が混ざります。

1. ":home"を表示
2. V→":mentions"
   twittering-last-retrieved-timeline-spec-string == ":home"
   twittering-last-requested-timeline-spec-string == ":mentions"
   twittering-timeline-data == {":mentions"のtimeline}
   になります。

3.2.の直後にV→":home"とする
   twittering-last-retrieved-timeline-spec-string == ":home"
   twittering-last-requested-timeline-spec-string == ":home"
   twittering-timeline-data == {":mentions"のtimeline}

   last-retrieved-specと指示されたspecが同じなので
   twittering-timeline-data が更新されません。
   この後にsentinelが起動すると
   {":mentions"のtimeline} + {新規取得した":home"のtimeline}
   が改めて":home"のtimelineとして記憶されてしまいます。

twittering-timeline-data-table と twittering-timeline-data
で二重管理しているのが混乱の元と思うのでそれを一元化する
修正を commit しました。
(b955a72d0bc6b1af88e71188b7d75a1a5c7e9bceです)

現在のtimeline-dataの参照にはtwittering-timeline-dataの
代わりに (twittering-current-timeline-data) を使うように
なっています。

現在の実装では違う timeline をリクエストする度に
twittering-timeline-last-update がリセットされていますが、
これも本来は twittering-timeline-data-table に含めるべき
情報と思います。いずれ対処するつもりです。

---
松尾 直志 <t...@mymail.twin.jp>

------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
twmode-users mailing list
twmode-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/twmode-users

メールによる返信