プロジェクト

全般

プロフィール

バグ #1150

Activityタブに表示されるTwitter dmの時刻がUTCになっている

Izumi Tsutsui13日前に追加. 12日前に更新.

ステータス:
新規
優先度:
低め
担当者:
-
対象バージョン:
プラグイン名:

説明

題名のとおりですが

Activityタブの右下に各アクティビティ(ツイート・ふぁぼ・システムメッセージ等)の
通知の時刻(?)が表示されるようになっていますが、
Twitter の dm の時刻だけは UTC で表示されているようです。

下記の例だと、2番めの dm の受信時刻について
Activity 欄での表示は 01:14:01 になっていますが
実際の受信時刻は JST 10:14:01 と思われます。

大した話ではないのですが、ふと Activity 欄を見ていて
「こんな時間に dm 来てたの?」→ 9時間ズレてた
などと思ってしまったので。

activity-1.png (15.2 KB) activity-1.png Izumi Tsutsui, 2018-01-06 19:02
activity-2.png (21.6 KB) activity-2.png Izumi Tsutsui, 2018-01-06 19:02
activity-3.png (16.7 KB) activity-3.png Izumi Tsutsui, 2018-01-06 19:02

履歴

#1 toshi_a 初音12日前に更新

ここだけタイムゾーンを無視して表示してしまってそうですね。タイムラインでは強制的にローカルタイムゾーンに変換してから表示していたと思うので、これも同じようにすれば治りそうです

#2 Izumi Tsutsui12日前に更新

activity.rb ではなぜか
source:core/plugin/activity/activity.rb@3ac4ed84#L299

      date = Time.parse(dm[:created_at])

で時刻を取っていますが、 retweet と同じセンス(?)で Twitter プラグイン側
source:core/plugin/twitter/mikutwitter/api_call_support.rb

        cnv[:created] = Time.parse(dm[:created_at]).localtime

と設定されている(?)らしい dm[:created] を参照するようにすると
Activity タブの時刻表示も localtime で出るようになりました。
--- core/plugin/activity/activity.rb.orig    2017-12-24 15:00:56.000000000 +0000
+++ core/plugin/activity/activity.rb
@@ -296,7 +296,7 @@ Plugin.create(:activity) do

   on_direct_messages do |service, dms|
     dms.each{ |dm|
-      date = Time.parse(dm[:created_at])
+      date = dm[:created]
       if date > BOOT_TIME
         activity(:dm, dm[:text],
                  description:

BOOT_TIME との比較において localtime にすべきなのかそうでないのか
というのがわかっていませんが。

他の形式にエクスポート: Atom PDF