プロジェクト

全般

プロフィール

バグ #1031

twitpic の画像がひらけない

あひる 家鴨約1ヶ月前に追加. 約1ヶ月前に更新.

ステータス:
パッチ適用待
優先度:
通常
担当者:
対象バージョン:
開始日:
2017-04-15
期日:
進捗率:

0%

プラグイン名:
photo_support
再現手順:

説明

twitpic が gzip で返してくるため、画像が開けなくなりました。

関係しているリビジョン

リビジョン 73234961 (差分)
あひる 家鴨約1ヶ月前に追加

twitpic の仕様変更に対応 refs #1031

twitpic が gzip で返してくるようになったため、zlib で展開して nokogiri を通すようにした。

履歴

#1 あひる 家鴨約1ヶ月前に更新

  • ステータス新規 から パッチ適用待 に変更
  • 担当者あひる 家鴨 から toshi_a 初音 に変更

ブランチ topic/1031-modify-twitpic にコミットしました。
確認をお願いします。

#2 toshi_a 初音約1ヶ月前に更新

  • プラグイン名core/plugin/photo_support/photo_support.rb から photo_support に変更

たしかhttpclientにはdeflateされてる場合自動的に伸張する機能があったと思うのですが、現在呼び出してる get_content メソッドではそれが行われないんですかね。(それにしてもRequest Headerにgzipをacceptするとは一言も書いてないのに…)
HTTPClientの機能を使えば、どのような形式でdeflateされているか判別してくれると思うので、その方法で伸張部分だけ書き換えて取り込むと思います

#3 あひる 家鴨約1ヶ月前に更新

HTTPClient の Session に deflate オプションがあるみたいです。
transparent_gzip_decompression
default value
デフォルト値が false みたいなので、これを true にしてあげるといいみたいです。
ただ、いまいち HTTPClient::Session の取り扱い方がわからないので、その辺はお任せしたいです。(丸投げ)

#4 Izumi Tsutsui約1ヶ月前に更新

ツイートに書くだけでチケットに書いていませんでしたが
Twitpic のページが gzip されるというのは意図された挙動なのかよくわからない感じです。

あと、チケットの本題からズレますが、 twitpic.com 自体も
http から https にリダイレクトされるようになったようなので
ブラウザからURLを貼るときのことを考えると https もマッチする
ようにしたほうがいいんですかね。

--- core/plugin/photo_support/photo_support.rb.orig    2017-04-08 07:35:59.000000000 +0000
+++ core/plugin/photo_support/photo_support.rb    2017-04-18 15:28:21.000000000 +0000
@@ -25,7 +25,7 @@

 Plugin.create :photo_support do
   # twitpic
-  defimageopener('twitpic', %r<^http://twitpic\.com/[a-zA-Z0-9]+>) do |display_url|
+  defimageopener('twitpic', %r<^https?://twitpic\.com/[a-zA-Z0-9]+>) do |display_url|
     connection = HTTPClient.new
     page = connection.get_content(display_url)
     next nil if page.empty?

#5 Izumi Tsutsui約1ヶ月前に更新

有識者のコメントを貼り忘れました
https://twitter.com/toshi_a/status/853151511320252417

返信先: @tsutsuiiさん
多分、リクエストヘッダをちゃんと見てなくて、常に圧縮して送るようになっちゃってるとか、その状態でキャッシュしちゃってるとか、そのへんな気がする

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