daemonfreaks.com

Wassr.vim ちょっとだけ改良

posted by jun-g at Thu, 10 Jul 2008 01:43 JST

ちょっとだけ改良した。ダウンロードはこちらからどうぞ。→ wassr.vim-0.1.1

以下変更点。

  • タイムライン取得時に投稿者のuser_login_idも表示するようにした。
  • TODOリストを取得できるようにした。

後、やりたいなと思っている事は以下のとおり。

  • タイムライン再取得時に新規投稿だけをバッファに追加するように
  • simplejsonを使わず、Pythonの標準ライブラリだけで処理するように
  • TODOの追加・更新・削除ができるように
  • その他APIが扱えるように

今日は(も?)既にへべれけなので、簡単な変更だけやりましたよ、という事で…。

Wassr.vim つくった

posted by jun-g at Wed, 09 Jul 2008 00:41 JST

職場だとおおっぴらにWassrを見ることができないので、VimでWassrを見たり投稿したりするプラグインを作った→ wassr.vim

といっても、twitter.vimをコピーして、ちょろっと中身を書き換えただけ。

PyBlosxom用vim plugin - pyblosxom.vim

posted by jun-g at Mon, 23 Apr 2007 21:59 JST

~/.vimrc がごちゃごちゃしてきたので、以前書いたPyBlosxom用のvimスクリプトを整理してvim pluginにしてみた。

ダウンロード

こちらからどうぞ

インストール

アーカイブを展開すると、pyblosxom.pyとpyblosxom.vimが出てくるので、それらを~/.vim/pluginに入れてインストール完了。

他に必要なもの

  • config.py … PyBlosxomの設定ファイル。
  • py-mixi … mixi日記に投稿する際に必要。(無くてもOK)

~/.vimrcの設定

~/.vimrcに以下の設定が必要。

  • g:pbconfigfile … config.pyファイルのパス
  • g:pbftpserver … FTPサーバ名
  • g:pbftpuser … FTPユーザー
  • g:pbftppassword … FTPパスワード
  • g:pbworkdir … ローカルの作業ディレクトリ
  • g:pbremotedir … アップロード先のディレクトリ
  • g:pbpingservers … 更新PINGを送信するPingサーバ
  • g:pbmixiid … mixiにログインするメールアドレス
  • g:pbmixipassword … mixiのパスワード

~/.vimrcには以下のように書けば良い。

:let g:pbconfigfile = "/home/jun-g/pyblosxom/config.py"
:let g:pbftpserver = "daemonfreaks.com"
:let g:pbftpuser = "user"
:let g:pbftppassword = "password"
:let g:pbworkdir = "/tmp"
:let g:pbremotedir = "/pyblosxom/entries"
:let g:pbmixiid = "mixi@loginid.com"
:let g:pbmixipassword = "mixipassword"
:let g:pbpingservers = "['http://pingoo.jp/ping/', 'http://api.my.yahoo.co.jp/RPC2', 'http://blogsearch.google.co.jp/ping/RPC2']"

使い方

  • 新規エントリ作成 -> 新しいエントリ(バッファ)にテンプレートを表示

    :PBCreateEntry
  • エントリのアップロード -> 現在編集中のエントリ(バッファ)を保存してアップロード

    :PBUploadEntry
  • トラックバック送信 -> 現在編集中のエントリから指定したURLへトラックバックを送信

    :PBTrackback [trackback url]
  • 更新PING送信

    :PBSendUpdatePing
  • 日記の抜粋をmixi日記に投稿 -> 現在編集中のエントリの抜粋を投稿

    :PBPost2Mixi

備考・ToDoなど

  • トラックバックで送信する本文は、エントリの先頭行に「...」を加えた文字列。
  • mixi日記に投稿する日記の抜粋は、エントリの先頭行に「...」を加えた文字列とエントリのURL。
  • Windows版vimには未対応。
  • カテゴリ(サブディレクトリ)には対応していない。なぜなら自分が使っていないから。次のバージョンで対応予定。
  • 更新PING送信機能は、以前どなたかのBlogで見かけたコードをほぼそのまま使用している。
  • mixi日記投稿機能は、以前実装したものを外部の関数として書き直したもの。

ご意見、ご要望、バグレポート、パッチなどなど、お待ちしています。

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ももっと勉強しないとな。

<<  Page 1 of 1