操作
バグ #1206
完了userstream で取得するツイートの表示が extended_tweet 形式になっていない
プラグイン名:
クラッシュする:
いいえ
説明
#921#note-7 で記載した件ですが、「別のチケットで進めたほうがよい」とのことなので書きました。
問題¶
- UserStream で取得された extended_tweet が compat tweet の体裁で表示されてしまう
- REST や FilterStream で取得する extended_tweet は意図通り表示される
- 最初にツイートを取得した状態でキャッシュに入るので、 UserStream で取得されたツイートは他のタブでもずっと compat 体裁で表示される
- 一度 compat 体裁で表示されたツイートも、再起動後には REST 等で再取得されるので extended での表示になる
修正トライ¶
- 4/14の突発てオフでのとしぁさんとの会話の中で
「リクエストのほうが足りてないとかじゃないか」
という話があったので調べてみたところ、
以下の userstream リクエストの修正で userstream でも extended_tweet は正常に取れるようになりました。
attachment:api_shortcuts.rb.diff
- テストツイート (リプライ+280文字弱+画像)
https://twitter.com/teokurebsd/status/985359988238381056 - 修正前 mikutter
- 修正後 mikutter
過去の経緯?¶
https://social.mikutter.hachune.net/@toshi_a/99861507043910666
でとしぁさんが挙げられている
source:core/plugin/twitter/mikutwitter/api_call_support.rb@50429700#L118
では
# Streaming APIにはtweet_modeスイッチが効かないとかTwitterアホか!?
と書かれていますが、少なくとも今現在は上記の通り tweet_mode=extended_tweet は効いているようです。
その他¶
- 他のクライアントでも同様に streaming API に tweet_mode=extended_tweet を渡しているように見えます。
https://github.com/isaki68k/sayaka/commit/63cf00216af01ef80694b2e95668d2499c99aefc#diff-509e2fc19aa84dd623a5a3842e1faae7
- mikutterにおける自分自身の投稿ツイート表示についてのとしぁさんコメント
https://social.mikutter.hachune.net/@toshi_a/99861627822711844
@tsutsuii 自分がツイートしたものを別のmikutterで見るというのが一番簡単でしょうね。Twitterはツイート作成APIエンドポイント(/statuses/update.json)の戻り値として、作成されたツイートを返してくるのですが、これはREST APIなので互換モード(Extended Tweetつき)形式になっていて、mikutterは全てのレスポンスをTL表示に利用するため検証になりません(たまに投稿APIのレスポンスよりUserStreamのほうが早く返してくることがあるため、CompatになったりExtendedになったりすると思われる)。
投稿APIをmikutterから叩かなければ回避できるので、別のクライアントか、もう一つmikutterを立ち上げて投稿すると惑わされることがないと思います
ファイル
操作