Actions
バグ #573
closedTwitpicの画像プレビューができない
プラグイン名:
openimg
ブランチ:
クラッシュする:
Description
Webが開いてしまうので、おそらくスクレイピングが失敗するようになったと思われる。パッチ受付中です(やる気ないわけじゃないけど)
Updated by Izumi Tsutsui over 11 years ago
パッチ以前の状況確認のみですが、よくわからない現象が起きている感じです。
例によって pkgsrc で入れた NetBSD上の mikutter 0.2.1.1130 という「とか環境」ですが、
同じバージョンの mikutter でも、マシンによってtwitpicのURLを叩いてpreviewできるmikutterと
できないmikutterがあります。
openimg.rb の imgurlresolver() で、preview できるものは
notice: {MIKUTTER_DIR}/core/miku/cons.rb:34:in `call': try to open url 'http://twitpic.com/3bn433' expanded 'http://twitpic.com/3bn433' notice: {MIKUTTER_DIR}/core/plugin/openimg/openimg.rb:140:in `imgurlresolver': "http://d3j5vwomefv46c.cloudfront.net/photos/large/200952687.jpg?key=800600& Expires=1362488178&Key-Pair-Id=APKAIYVGSUJFNRFZBBTA&Signature= 以下略
と出ますが、できないものは
notice: {MIKUTTER_DIR}/core/miku/cons.rb:34:in `call': try to open url 'http://twitpic.com/3bn433' expanded 'http://twitpic.com/3bn433' notice: {MIKUTTER_DIR}/core/plugin/openimg/openimg.rb:109:in `get_tagattr': not matched warning: {MIKUTTER_DIR}/core/plugin/openimg/openimg.rb:148:in `rescue in imgurlresolver': bad argument (expected URI object or URI string)
となってしまいます。
openimg.rb の
address = get_tagattr(res.body, element_rule)
の行の前に
notice res.body
を入れて取得したtwitpicページのhtmlを表示させてみると、ちゃんと指定ページの中身も取れていて
cloudfront.net/photos/large の img src の行も存在しているのにも関わらず
なぜか not matched で失敗してしまっています。何が起きてるんでしょう?
Updated by toshi_a 初音 over 11 years ago
Ruby1.9.3 p392 のセキュリティパッチの影響で動作しなくなっていた模様。以下の修正の影響で、パターンファイルに正規表現が使われているものが正常に読み込めなかった。報告はなかったが、携帯百景などもこの影響を受けていた。
http://www.ruby-lang.org/ja/news/2013/02/22/json-dos-cve-2013-0269/
上記のページに書いてある方法と逆の対策を取って(パターンファイルはプラグインの一部なので信用できる情報と判断してよい)、今までどおり正規表現を使えるようにしたところ、プレビューができるようになった。
Updated by toshi_a 初音 over 11 years ago
- Status changed from 新規 to 終了
- % Done changed from 0 to 100
更新履歴 11aaf6055a5f069c00878563faf4299c969d1b69 で適用されました。
Actions