読者です 読者をやめる 読者になる 読者になる

はじめての emacs-lisp

howm で書いたものをそのままはてなに投稿したいなぁと思って
書いてみた

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys

from hatenadiary import HatenaDiary
from pit import Pit

def getDiary():
    conf = Pit.get('hatena.ne.jp',{'require' : {'userid':'Your hatena.ne.jp userid}','password':'Your hatena.ne.jp password'}})    
    return HatenaDiary(conf['userid'],conf['password'])

if __name__ == '__main__':
    if len(sys.argv) == 1:
        print 'no file'
        exit(1)
    else:
        file_path = sys.argv[1]
    lines = [x for x in open(file_path)]
    title = lines[0].replace('=',"")
    body = "".join(lines[2:])
    diary = getDiary()
    result =  diary.post(title,body)
    print 'post:' + result[0]['title'].encode('utf-8') ,

単純に 1行目をタイトルにして3行目以降を本文として投稿してるだけ
これを emacs から呼びだす Lisp

(setq howm-menu-lang 'ja)
(require 'howm-mode)
(setq howm-directory "~/.howm/")(setq howm-menu-lang 'ja)
(global-set-key "\C-c,," 'howm-menu)
(autoload 'howm-menu "howm" "Hitori Otegaru Wiki Modoki" t)

(defvar HOWM_PY "~/.emacs.d/conf/howm.py"
  "*The command to send howm to hatena")

(defun hatena-post ()
  (interactive)
  (call-process
   HOWM_PY nil 0 nil buffer-file-name ))

(define-key howm-mode-map "\C-cd" 'hatena-post)

で, C-c d で投稿出来るようになったんだけど,
結果を minibuffer に表示する方法がわからない><
0 の buffer-name に t って書くと カレントバッファに
書かれるんだけど,minibaffer ってどうやって指定するんだろう><

追記:
ここまでも id:nishiohirokazu に色々教えてもらって出来るようになりました!!
ありがとう!!
http://d.hatena.ne.jp/nishiohirokazu/20090305/1236252726

追記2:
(define-key global-map "\C-cd" は駄目な気がする><

追記3:
howm-mode-map とかあった!!
ので修正した