hatena.vimの解析
Vimからはてなダイアリーを投稿をまねして、xyzzyでhatena-modeを作ろうと思っている。
というわけで、何をしているか調べてみる。
- cURLを使って、特定のURLにSSLを使って、アクセスしている。
- curl -k URL
- クッキーによるログイン
- curl -k http://d.hatena.ne.jp/<はてなID>/edit -b "<クッキー>" -D - -o <一時ファイル>
- 返ってきたHTTPヘッダに'Location:'が含まれていなければログイン済み
- パスワードによるログイン
- curl -k https://www.hatena.ne.jp/login -d key=<はてなID> -d password=<パスワード> -d mode=enter -c "<クッキー>" -D - -o <一時ファイル>
- 編集ページの取得
- curl -k http://d.hatena.ne.jp/<はてなID>/edit?date=<年月日> -b "<クッキー>"
- 正規表現を使って、<textarea>から</textarea>までを取得している
- 更新は全部削除してから、投稿している
- curl -k http://d.hatena.ne.jp/<はてなID>/edit -b "<クッキー>" -F year=<年> -F month=<月> -F day=<日> -F rkm=
-F body= -F title= - curl -k http://d.hatena.ne.jp/<はてなID>/edit -b "<クッキー>" -F year=<年> -F month=<月> -F day=<日> -F rkm=
-F body="< <データの含まれたファイル名?>" -F title=<タイトル> -D -
- curl -k http://d.hatena.ne.jp/<はてなID>/edit -b "<クッキー>" -F year=<年> -F month=<月> -F day=<日> -F rkm=
続いて、cURLのオプション。Vimスクリプトが使ってるやつだけ。
オプション | 機能 |
---|---|
-k | SSL通信を行う |
-b | 指定したクッキーを使用する。 |
-c | 指定したファイルにクッキーを保存する |
-D | HTTPヘッダのダンプ? |
-o | 標準出力の代わりに指定したファイルに出力する。標準出力に表示しないために使用している? |
-d | URLエンコード等をせずにPOSTリクエストを送信する |
-F | フォームへの書き込みをエミュレートする |