公式RTが表示される位置がwebでのそれと異なるという指摘があり、
調べてみると、元tweetがpostされた時間をキーにしてTLへの挿入
位置を決める実装になっていました。
この挙動だと、仮に1日前のtweetをRTしたとすると遥か過去のTLに
混ざってしまい、TLの流れが速い人は目撃できないことになります。
そこで、RTされた時間をキーにして挿入するように変更したいと
考えています。添付した変更で、webと同等の表示になると思います。
#
> 公式RTに関して同じtweetが複数表示される事例があるようです。
いまの実装だと、複数人が同一のtweetをRTすると、そのすべてが
表示されるような気がします。。
> tweet 挿入時に、その直前に挿入した tweet もIDの比較対象にして
> 重複表示しないようにしています。
> (ID重複がない場合はその分無駄な処理を行うことになりますが)
前述の変更をする前であれば、直前に挿入したIDと比較するだけで
検出ができると思います。ただし、変更後はRTされたtweetのIDは
整列されなくなりますから、もう一ひねりする必要がありそうな
気がします。
という感じなのでcommitするタイミングを窺っているのですが、
commitしてもよいでしょうか?
diff --git a/ChangeLog b/ChangeLog
index 2479518..103c773 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-02-03 Satoshi Yatagawa <[email protected]>
+
+ * twittering-mode.el (twittering-status-to-status-datum): Don't
+ rewrite `created-at' by a same name element in `retweeted_status'
+ node.
+
2010-01-31 Tadashi MATSUO <[email protected]>
* twittering-mode.el (twittering-http-get-default-sentinel):
diff --git a/twittering-mode.el b/twittering-mode.el
index 1628353..f028694 100644
--- a/twittering-mode.el
+++ b/twittering-mode.el
@@ -1687,6 +1687,7 @@ If STATUS-DATUM is already in DATA-VAR, return nil. If not, return t."
user-protected
regex-index
(retweeted-status-data (cddr (assq 'retweeted_status status-data)))
+ original-created-at
original-user-name
original-user-screen-name)
@@ -1695,7 +1696,8 @@ If STATUS-DATUM is already in DATA-VAR, return nil. If not, return t."
(setq original-user-screen-name (twittering-decode-html-entities
(assq-get 'screen_name user-data))
original-user-name (twittering-decode-html-entities
- (assq-get 'name user-data)))
+ (assq-get 'name user-data))
+ original-created-at (assq-get 'created_at status-data))
(setq status-data retweeted-status-data
user-data (cddr (assq 'user retweeted-status-data))))
@@ -1704,7 +1706,8 @@ If STATUS-DATUM is already in DATA-VAR, return nil. If not, return t."
(assq-get 'text status-data)))
(setq source (twittering-decode-html-entities
(assq-get 'source status-data)))
- (setq created-at (assq-get 'created_at status-data))
+ (setq created-at (or original-created-at
+ (assq-get 'created_at status-data)))
(setq truncated (assq-get 'truncated status-data))
(setq in-reply-to-status-id
(twittering-decode-html-entities
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
twmode-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/twmode-users