バグ #1150
完了
Activityタブに表示されるTwitter dmの時刻がUTCになっている
Izumi Tsutsui さんがほぼ7年前に追加.
6年以上前に更新.
説明
題名のとおりですが
Activityタブの右下に各アクティビティ(ツイート・ふぁぼ・システムメッセージ等)の
通知の時刻(?)が表示されるようになっていますが、
Twitter の dm の時刻だけは UTC で表示されているようです。
下記の例だと、2番めの dm の受信時刻について
Activity 欄での表示は 01:14:01 になっていますが
実際の受信時刻は JST 10:14:01 と思われます。
大した話ではないのですが、ふと Activity 欄を見ていて
「こんな時間に dm 来てたの?」→ 9時間ズレてた
などと思ってしまったので。
ファイル
ここだけタイムゾーンを無視して表示してしまってそうですね。タイムラインでは強制的にローカルタイムゾーンに変換してから表示していたと思うので、これも同じようにすれば治りそうです
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 にすべきなのかそうでないのか
というのがわかっていませんが。
- ステータス を 新規 から パッチ適用待ち に変更
- ステータス を パッチ適用待ち から レビュー待ち に変更
- 担当者 を Izumi Tsutsui にセット
ブランチ topic/1150-invalid-timezone-twitter-dm-in-activity にpushしました。確認お願いします。
- ステータス を レビュー待ち から マージ待ち に変更
f1786297 で JST で表示されることを確認しました。
「自分宛に dm を送る」という行為は公式でもできるのだろうか……
- 担当者 を Izumi Tsutsui から toshi_a 初音 に変更
他の形式にエクスポート: Atom
PDF