プロジェクト

全般

プロフィール

バグ #1031

twitpic の画像がひらけない

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

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
プラグイン名:
photo_support
ブランチ:
master
クラッシュする:
いいえ

説明

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

関係しているリビジョン

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

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

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

リビジョン 8b6cd54d (差分)
toshi_a 初音約1年前に追加

twitpicのURLスキームがhttpsの場合開けなかった refs #1031

リビジョン 8a428be3 (差分)
toshi_a 初音約1年前に追加

twitpic.comが、誤ってdeflateされたレスポンスを返す対策 refs #1031

履歴

#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さん
多分、リクエストヘッダをちゃんと見てなくて、常に圧縮して送るようになっちゃってるとか、その状態でキャッシュしちゃってるとか、そのへんな気がする

#6 Izumi Tsutsui約1年前に更新

6/3 時点で再度 gzip された html を返すページが存在しました。いずれにせよ対応は必要ですね……

https://twitter.com/tsutsuii/status/870843163186913280
https://twitpic.com/6985ru

#7 toshi_a 初音約1年前に更新

  • ステータスパッチ適用待ち から レビュー待ち に変更
  • 担当者toshi_a 初音 から Izumi Tsutsui に変更

topic/1031-forever-twitpic ブランチにて修正しました。正しく動いてるか確認お願いできますか。

#8 Izumi Tsutsui約1年前に更新

  • ステータスレビュー待ち から 解決 に変更

遅くなりましたが
3.5.8 + 8a428be3
https://twitter.com/tsutsuii/status/870842885540675589

https://twitpic.com/6985ru
の画像が curl では gzip されていて、かつ
mikutter の画像ビューアでもエラーなく表示されることを
確認しました。

#9 toshi_a 初音12ヶ月前に更新

  • ステータス解決 から 終了 に変更

#10 toshi_a 初音4ヶ月前に更新

  • ステータス終了 から まだダメ に変更

つついさんにMastodonでボコられた。マージされていないらしいので確認する

#11 Izumi Tsutsui4ヶ月前に更新

twitpicも仕様が変わって画像だけしか無い html を返すようになりましたが、
いまだに gzip されたものが降ってくることがあるのかは確認できていません。
なので、誰も困っていないのかも……

#12 Izumi Tsutsui4ヶ月前に更新

と思ったら #1031#note-6https://twitpic.com/6985ru は gzip されてるっぽいです

% curl https://twitpic.com/blr7h9 | file -
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1973  100  1973    0     0  18100      0 --:--:-- --:--:-- --:--:-- 18100
/dev/stdin: HTML document, ASCII text, with very long lines
mirage-% curl https://twitpic.com/6985ru | file -
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1067  100  1067    0     0   9971      0 --:--:-- --:--:-- --:--:--  9971
/dev/stdin: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT)
% 

#13 toshi_a 初音4ヶ月前に更新

  • ステータスまだダメ から レビュー待ち に変更
  • ブランチmaster にセット

topic/1031-forever-twitpicをmasterにmergeしました。かなり期間が開いているので、masterでもう一度チェックしてもらえますか

#14 Izumi Tsutsui4ヶ月前に更新

pkgsrc では 3320adb9 相当のパッチが当たっているのでそのまま
https://twitter.com/tsutsuii/status/870842885540675589
の画像を開いてみましたが問題なくプレビューウインドウで表示可能でした。
終了でOKと思います。

#15 toshi_a 初音4ヶ月前に更新

  • ステータスレビュー待ち から 終了 に変更

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