daemonfreaks.com

vimでpyblosxomのエントリを書いてアップロードするvimスクリプトをpythonで書いた

posted by jun-g at Mon, 09 Oct 2006 22:53 JST

pyblosxomは、テキストファイルにエントリを書いてFTPでサーバにアップロードする、という仕組みになっている。プラグインで拡張する事でMetaWeblogAPIを使ったり投稿画面を付けたりする事ができるみたいやけどまだ全然試せていなくて、エディタでエントリを書いてアップする、という作業がかなり面倒に感じていた。

そんな時、「pythonを使ってvimからGoogleカレンダーに予定を投げる (ueBLOG)」というエントリを読んで、ちょうどエディタはvimを使ってるし、「Pyblosxom用エントリファイルのFTP送信」を読んで「Emacs便利でいいなー」とか思ってたので、vimでエントリを書いてそのままアップロードできるスクリプトをpythonで書いてみた。

python << EOF

FTP_SERV = "your.ftp.server"
FTP_USER = "ftpuser"
FTP_PASS = "ftppasswd"
LOCAL_DIR = "/path/to/localdir"
REMOTE_DIR = "/path/to/remotedir"

import vim
import datetime
from os import path
from ftplib  import FTP

def createEntry():
    fileName = path.join(LOCAL_DIR, _createFileName())
    vim.command("new %s" % fileName)
    vim.command("set fileencoding=utf-8")
    cb = vim.current.buffer
    cb[0] = "title"
    cb.append("#tags hoge,fuga")
    cb.append("body")
    vim.command("w")

def uploadEntry():
    cb = vim.current.buffer
    if cb.name == None:
        fileName = _createFileName()
        fullName = path.join(LOCAL_DIR, fileName)
        vim.command("saveas %s" % fullName)
    else:
        fileName = path.basename(cb.name)
        fullName = cb.name
        vim.command("w")
    f = open("%s" % fullName, "r")
    ftp = FTP(FTP_SERV, FTP_USER, FTP_PASS)
    ftp.cwd(REMOTE_DIR)
    ftp.storlines("STOR %s" % fileName, f)
    ftp.close()
    f.close()

def _createFileName():
    return "%s.txt" % datetime.datetime.now().strftime("%Y%m%d%H%M")

EOF

これを.vimrcに書いといて、vim上で

:py createEntry()

とすると

title
#tags hoge,futa
body

という空のエントリを新規バッファを開きつつ「LOCAL_DIR」で指定したディレクトリ内に保存する。ファイル名は現在日時を「YYYYMMDDHHMI.txt」として自動生成。二行目の「#tags〜」はtagsプラグインを使っているので。

でもってエントリをつらつら書いたら、

:py uploadEntry()

でアップロード。僕はエントリのカテゴリ分けをしていないので、カテゴリ指定は無し。

vimは全然使いこなせてないので、おかしな事してるところがあるかもしれないけど、これだけでかなり便利になった。vimももっと勉強しないとな。

NintendoDS Lite購入

posted by jun-g at Mon, 09 Oct 2006 22:18 JST

NintendoDSLite JetBlack

朝から出勤してて、1時間程度で用事が済んだので帰りにヨドバシ梅田に寄ってみたら、NintendoDS LiteのJetBlackが普通に売っていたので購入した。GBA用の積みゲーがたまっているので、とりあえずソフトは買わなかった。

BLOOD+

posted by jun-g at Mon, 09 Oct 2006 04:06 JST

全話録画してあったのにまったく見ていなかったBLOOD+を昨日から見始めた。とりあえず20話分ぐらい一気に消費。途中、1話だけ抜けている回があって、慌ててYouTubeで探してみたら予想通りアップされていたので、その回だけYouTubeで観賞した。よくない事とはわかっているけど、非常に助かった。

内容は結構面白い。ストーリー展開は結構丁寧に進むので、見ていて混乱する事もない。ただ、(タイトル通り)血が出るシーンが結構多くて「これって夕方に普通に放送してたな」とか考えてちょっとびっくりした。あ、でも血が吹き出すシーンとかあるホラー映画なんかも普通に放送してるか…。

今月から新しく始まったアニメのチェックもしないといけないので、早く全話見終らないと。