-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
URL が書かれたときにタイトルを取得する #5
Comments
43cf499 今後の実装予定は上のコミットのメッセージに記述してあります。 |
自己署名証明書など、SSLエラーが発生するとページを読みにいかない。 しかし、CREのサイトなど、信用できるドメインをあらかじめ設定ファイルに記述しておくことで、証明書エラーが発生してもページタイトルを取得できるようにした。 refs #5
設定ファイルで指定可能なオプションが変わったため、ドキュメントを更新した。 * User-Agent は、ソースコードに直接記述することにした。 * SSL証明書の確認をスキップするドメインを指定できるようになった。 * タイプアウトの秒数を指定できるようになった。 * ページタイトルの前後にコメントを入れられるようになった。 refs #5
refs #5 設定したドメインでホスト名が終わっているかを調べるようにした
エラー処理等もう少し入れる機能があるので v0.7.0 に回します。 |
URLの宛先がページではなかった場合、MIMEタイプと容量を調べる機能を追加したいと思います。 |
URLの宛先がページではないかどうかは、#title を持つかどうかで判断すればよさそうです。Object#respond_to? が使えます。
if page.respond_to?(:title)
@reply_prefix + page.title + @reply_suffix
else
# #title が存在しない場合の処理
end |
ちょっと実験。以下を GET したときの結果です。
m = Mechanize.new
# GET する
cre_ne_jp = m.get('http://www.cre.ne.jp/')
banner = m.get('http://www.cre.ne.jp/wp-content/themes/wsc7/img/cre_banner.jpg')
rfc2812 = m.get('http://jbpe.tripod.com/rfcj/rfc2812.j.sjis.txt')
# メソッドが存在するかどうか
[cre_ne_jp, banner, rfc2812].map { |obj| obj.respond_to?(:title) }
# => [true, false, false]
[cre_ne_jp, banner, rfc2812].map { |obj| obj.respond_to?(:content_type) }
# => [true, false, false]
# Content-Type
cre_ne_jp.content_type
# => "text/html; charset=UTF-8"
[cre_ne_jp, banner, rfc2812].map { |obj| obj.response['Content-Type'] }
# => ["text/html; charset=UTF-8", "image/jpeg", "text/plain"]
# Content-Length
[cre_ne_jp, banner, rfc2812].map { |obj| obj.response['Content-Length'] }
# => ["4983", "4297", "33769"] |
バイトサイズを読みやすくする gem もあるみたいです。 |
refs #5 * 非 HTML ファイルでは Content-Type と Content-Length を返信に含めるようにした * テスト時に ActiveSupport の読み込みでエラーが起きないよう spec_helper.rb で activesupport/all を読み込むようにした rspec/rspec-autotest#21 を参照
refs #5 LoadError が起きないように require 'activesupport' を追加した
HTTP ステータスコードの表示を以下を参考にしてつけてみたいと思います。 |
refs #5 * 自己署名証明書許可が引き継がれないよう、agent を毎回作るようにした * メッセージ生成を複数のメソッドに分割した
refs #5 Timeout::Error と Net::HTTP::Persistent::Error を補足するようにした
だいたい基本機能は実装できたので、個別に issue を立てるようにしたいと思います。 |
Tiarra にある URL が書かれたときにタイトルを取得する機能(Auto::FetchTitle)を改良して実装する。
The text was updated successfully, but these errors were encountered: