Featured image of post go-itunesを作ってみた

go-itunesを作ってみた

Twitter ツイート Hatena Bookmark ブックマーク

自分のgolang力の低さに絶望したので、golang力をあげるためにライブラリを作ってみた。

go-itunes

https://github.com/polidog/go-itunes

itunesの操作をgolangでするためのライブラリ。
実際はJavaScriptでitunesの操作を行っていて、golangはexecしているだけなのですが・・・。

jsファイルをどうするか問題

コンパイルするときにどうやってjsファイルを扱うか悩んでいたんですが、go-binddata使うことになりました。

1
2
$ cd script
$ go-bindata -pkg script files/...

って感じでつかってfiles以下にあるjsを埋め込んでます。
埋め込んだデータをこんど使う方法がわからなかったので、実行時に添付ディレクトリに展開する感じの実装にしてしまいました。。 https://github.com/polidog/go-itunes/blob/bdf8b72edf7d81962e5a9d8e6f0ff0cb0f797a34/script/script.go#L63

曲が変わったら検知する

watcher.goで実装しました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
package main

import (
	"fmt"
	"github.com/polidog/go-itunes"
)

func main() {
	watcher := itunes.NewWatcher(800)
	for {
		if (watcher.Watch()) {
			fmt.Println("change track")
			fmt.Println(watcher.Track)
		}
	}
}

テストに関して

なんとなくテスト書いてみたけど、どうモックすればいいのかその辺がいまいち掴めていないので誰か相談に乗ってもらいたいです。
execをどうテストするべきなのか、そのへんに悩んでいます。

最後に

golangで書く必要はまったくもってなかったんですが、何かと勉強になりました。
もう少しgolang力を高めるために実装頑張ります。

そうそうwindowsでは動かないので動くようにこれから頑張ります。

comments powered by Disqus
Built with Hugo
テーマ StackJimmy によって設計されています。