はてなダイアリーライター Version 1.4.1 を試してみた(その2)

id:takatoh:20070708:hw のつづき。Crypt::SSLeayをインストールしたらエラーになった件。

いろいろ試した結果,クッキーファイル(cookie.txt)の有無と関係が有ることがわかった。表にするとこんな感じ。

cookie.txtあり cookie.txtなし
Crypt::SSLeayなし OK OK
Crypt::SSLeayあり OK エラー

Crypt::SSLeayが無い場合にはcookie.txtの有無に関わらずOKなんだけど,これは暗号化されないってことなんで非推奨。Crypt::SSLeayをインストールするとcookie.txtが無い場合にエラーになる。無けりゃ作ってくれるはずなんだけど,ここで失敗しているように見える(最後から2行目)。……ちがうのかな。

-d オプションをつけて実行した結果:

 ^o^ >perl hw.pl -d
 DEBUG: Debug flag on.
 Hatena Diary Writer Version 1.4.1
 Copyright (C) 2004,2005 by Hiroshi Yuki.
 DEBUG: Loading config file (config.txt).
 DEBUG: load_config: id:takatoh
 DEBUG: load_config: password:********
 DEBUG: load_config: cookie:cookie.txt
 DEBUG: load_config: proxy:http://proxy:8080/
 DEBUG: load_config: client_encoding:Shift_JIS
 DEBUG: load_config: server_encoding:EUC_JP
 DEBUG: main: files: current dir (.): ./2007-07-08.txt ./touch.txt
 DEBUG: login: proxy for http: http://proxy:8080/
 DEBUG: login: proxy for https: http://proxy:8080/
 Login to https://www.hatena.ne.jp/login as takatoh.
 DEBUG: login: 200 OK
 DEBUG: login: $r = <HTML></HTML>
 Login OK.
 DEBUG: login: Making cookie jar.
 DEBUG: login: $cookie_jar =
 DEBUG: read_title_body: input: ./2007-07-08.txt
 DEBUG: Convert from Shift_JIS to EUC_JP.
 Post 2007-07-08.
 DEBUG: create_it: 2007-07-08.
 DEBUG: create_it: 302 Moved
 DEBUG: create_it: Location: /takatoh/
 DEBUG: create_it: returns 0 (ERROR).
 DEBUG: try_it: update_diary_entry: CREATE.
 Old cookie. Retry login.
 DEBUG: login: proxy for http: http://proxy:8080/
 DEBUG: login: proxy for https: http://proxy:8080/
 Login to https://www.hatena.ne.jp/login as takatoh.
 DEBUG: login: 200 OK
 DEBUG: login: $r = <HTML></HTML>
 Login OK.
 DEBUG: login: Making cookie jar.
 DEBUG: login: $cookie_jar =
 DEBUG: create_it: 2007-07-08.
 DEBUG: create_it: 302 Moved
 DEBUG: create_it: Location: /takatoh/
 DEBUG: create_it: returns 0 (ERROR).
 DEBUG: try_it: update_diary_entry: CREATE.
 Old cookie. Retry login.
 DEBUG: login: proxy for http: http://proxy:8080/
 DEBUG: login: proxy for https: http://proxy:8080/
 Login to https://www.hatena.ne.jp/login as takatoh.
 DEBUG: login: 200 OK
 DEBUG: login: $r = <HTML></HTML>
 Login OK.
 DEBUG: login: Making cookie jar.
 DEBUG: login: $cookie_jar =
 ERROR: try_it: Check username/password.

結局,Crypt::SSLeayをインストール/アンインストールしたり,設定ファイルを書き換えてみたりしてるうちにできた(つまりCrypt::SSLeayなしの時にできた)クッキーファイルがあって動くようになったので今回はOKとする。Crypt::SSLeayありの状態でクッキーファイルを作る方法はわからない。

なんだか中途半端だけど時間切れだ。

追記:PCの環境

追記2:proxyなしの場合

hyukiさんのアドバイスに従ってproxyの無い環境で試してみたら,正しく投稿できた。どうやら次の3つが重なったときにエラーになるらしい。

  • Crypt::SSLeay あり
  • クッキーファイルがない
  • proxyを利用