11/12に使い始めて、バグ取りを2回、機能追加を1回行った自作コンポーネント。現状は以下のことができる。
・SQLiteデータベースに再生履歴とレートを記録し、表示する
・自宅サーバに再生履歴を送信する
・iPodコンポーネント(foo_dop)と連携し、iPodの再生履歴を記録する
・コンテクストメニューからレートを設定する(あとから追加した機能)
早急に追加実装したい機能は、現状、foobar2000を終了してRubyスクリプトを実行することで行なっている、Media Libraryの変更(iTunesで行なっている)をSQLiteデータベースに反映することである。インタフェースは調べ終わっているので実装するだけであるが、今の作りはいつでもiTunesへSQLiteデータベースの情報を戻せるように、レコードのキーにiTunesのトラックのPersistent IDを使っているので、COMを使わなければいけないので時間がかかりそうである。.NET CLI以外でCOMを使ったことはない。
もう一つやりたいのが、RockboxをインストールしたiPodでの再生履歴を取得し、SQLiteデータベースに反映、サーバへ送信することである。
これは、RockboxがLast.fm用にテキストファイルに履歴を残すことはわかっているので、そのファイルを読み込んで、処理をして、削除する(最後に消さないと次に同じ処理をしてしまう)だけである。
ただ、iPodをRockboxで起動し、再生した場合は、iTunesが再生履歴を取れなかったことを思い出すとfoo_dopも履歴を取れないと思われるので、自宅サーバはもちろん、Last.fmへの送信も考えなければいけない。
Last.fmのコミュニティを見るとそれなりのことを次期バージョン以降で作者も考えているようではあるが、自分が考えているものとは違うようである。
この、Rockbox部分は独立したコンポーネントとして作成して、今までのコンポーネントとは分けて、単独で動作するように作りたいと考えている。配布できるように。foo_rockbox(仮称)みたいな名前で、Last.fmへの送信処理とfoo_dopライクなSDKを提供するコンポーネントを作れたらいいな、と考えている。送信すらオプションに選択できて、SDKコールのみでの使用もできるようにしたほうがいいのかもしれない。
まぁ、最初は自分だけが使えるように、今使っているもののように、設定画面もなく、アカウントやなにやらをすべてソースに書いた状態から作り始めるのだろうが。
ちなみに、Last.fmの開発者登録は済ませてあり、APIキーは取得済みなので、いつでも作れるのである。ドキュメントも読んだが、テストコードすら書いていないので動くものを作れる自信は全くない。
コメント