操作
バグ #573
完了Twitpicの画像プレビューができない
プラグイン名:
openimg
ブランチ:
クラッシュする:
説明
Webが開いてしまうので、おそらくスクレイピングが失敗するようになったと思われる。パッチ受付中です(やる気ないわけじゃないけど)
Izumi Tsutsui さんがほぼ12年前に更新
パッチ以前の状況確認のみですが、よくわからない現象が起きている感じです。
例によって 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 で失敗してしまっています。何が起きてるんでしょう?
toshi_a 初音 さんがほぼ12年前に更新
Ruby1.9.3 p392 のセキュリティパッチの影響で動作しなくなっていた模様。以下の修正の影響で、パターンファイルに正規表現が使われているものが正常に読み込めなかった。報告はなかったが、携帯百景などもこの影響を受けていた。
http://www.ruby-lang.org/ja/news/2013/02/22/json-dos-cve-2013-0269/
上記のページに書いてある方法と逆の対策を取って(パターンファイルはプラグインの一部なので信用できる情報と判断してよい)、今までどおり正規表現を使えるようにしたところ、プレビューができるようになった。
toshi_a 初音 さんがほぼ12年前に更新
- ステータス を 新規 から 終了 に変更
- 進捗率 を 0 から 100 に変更
更新履歴 11aaf6055a5f069c00878563faf4299c969d1b69 で適用されました。
操作