iTunesにコンテキストメニューから曲を追加
iTunesにできるだけ簡単にmp3ファイルを追加したい。できればエクスプローラーからファイルを右クリックしてコンテキストメニューで追加できるといいかんじ。調べてみると、iTunesのCOM APIを使えばできそうだったので試してみた。
まず、iTunesをたたくスクリプトを作成。mylistというプレイリストに曲を追加するなら以下のような感じで。これをadd_mp3.jsとしておく。
var iTunesApp = WScript.CreateObject("iTunes.Application"); var mainLibrary = iTunesApp.LibrarySource; var playlist = mainLibrary.Playlists.ItemByName("mylist"); for (var i = 0; i < WScript.Arguments.Count(); i++) { playlist.AddFile(WScript.Arguments(i)); }
あとは、.mp3のコンテキストメニューにこのスクリプトを呼ぶメニューを追加してやればよい。
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\iTunes.mp3\shell\add] @="iTunesに登録" [HKEY_CLASSES_ROOT\iTunes.mp3\shell\add\command] @="wscript.exe F:\\media\\add_mp3.js \"%1\""
mp3ファイルがiTunesに関連づけられているなら、こんな感じで。
ODBC接続
午前中はかなり体調が悪かったけど、午後になってだいぶましになったので、ODBC 接続を試してみることに。
まず ODBCドライバをインストール。
$ gem install dbd-odbc
接続文字列は、"DBI:ODBC:DSN名" でいいらしい。接続は簡単にできたけど、select_one でデータを読もうとすると、failed to allocate memory (NoMemoryError) というエラーがでて読み込めない。
いろいろ探しまわった結果、ODBC NoMemoryError に、set textsize をしろという情報を見つける。
DBI.connect("DBI:ODBC:#{dsn}", dbuser, dbpass) do |db| db.do("set textsize 1048576") p db.select_one("select * from odbctest") end
こんな感じでできた。
一応動くところまでいったけど、ODBCドライバに cp932 でデータを渡さないといけないあたりがどうにもいまいち。0.8 ブランチはいいけど、trunk はせっかく全部 UTF8 になってるのに。
ブランチの変更の trunk へのマージ
よく忘れるのでメモ。
作業コピーで
$ svn log --stop-on-copy
を実行して、どのリビジョンからマージしないといけないかをチェック
トランクの作業コピーで HEAD のリビジョンをチェック
$ svn update 617
マージ予定の変更分をチェック
$ svn diff -r 616:617 https://svn.sourceforge.jp/svnroot/kagemai/kagemai/branches/0.8
トランクの作業コピーにマージしてコミット
$ svn merge -r 616:617 https://svn.sourceforge.jp/svnroot/kagemai/kagemai/branches/0.8 $ svn commit -m "Merged 0.8 branch changes r616:617 into the trunk"
参照回数
レポートの参照回数を記録するように修正。これもたいして使い道があるわけではないけど。