Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2008-02-29

LISP引きこもり生活 (4) はてな日記をCLから更新する その2

| 11:02 | LISP引きこもり生活 (4) はてな日記をCLから更新する その2 - わだばLisperになる を含むブックマーク はてなブックマーク - LISP引きこもり生活 (4) はてな日記をCLから更新する その2 - わだばLisperになる

昨日のコードでは、どうもポストする度にどんどん追記されていってしまうようなので、更新する際には一旦削除してから再度ポストすることにしてみました。

もっとちゃんとした正しい方法があると思うんですが…。

ログアウトしてない所為かと思ってログアウトもするようにしたんですが、ログアウトするかしないかは追記の件とは関係ない様子。

上書きモードとか、追記モードがあるのかしら。

;; 使い方

;; Lispマシン的気分のための設定
(login-setq *hw-base-url* "http://cadr.g.hatena.ne.jp/g000001")

;; ポスト
(let ((cj (hw:login))
      (base *hw-base-url*))
  (hw:delete-entry base cj)
  (hw:post base
	   (hw::file-to-string "g000001/group/cadr/2008-02-29.txt")
	   cj)
  (hw:logout cj))

;; ----------------
(defun delete-entry (base-url cj &optional date)
  (let ((date (or date (today-string))))
    ;; confirm
    (http-request (sconc base-url "/edit") 
		    :external-format-in :utf-8 
		    :external-format-out :utf-8
		    :method :post
		    :cookie-jar cj
		    :parameters 
		    `(("mode" . "delete")
		      ("rkm" . ,(rkm cj base-url))
		      ("date" . ,date)))

    ;; delete
    (http-request (sconc base-url "/deletediary") 
		    :external-format-in :utf-8 
		    :external-format-out :utf-8
		    :method :post
		    :cookie-jar cj
		    :parameters 
		    `(("mode" . "enter")
		      ("rkm" . ,(rkm cj base-url))
		      ("date" . ,date)))))

(defun logout (cj)
  (http-request "https://www.hatena.ne.jp/logout" 
		:external-format-in :utf-8 
		:external-format-out :utf-8
		:cookie-jar cj))