diff options
Diffstat (limited to 'tools/music')
-rw-r--r-- | tools/music/Makefile | 10 | ||||
-rwxr-xr-x | tools/music/gettitle | 4 | ||||
-rw-r--r-- | tools/music/iTunes.8 | bin | 0 -> 37608 bytes | |||
-rw-r--r-- | tools/music/iTunes.go | 79 | ||||
-rwxr-xr-x | tools/music/music | bin | 0 -> 2843022 bytes | |||
-rwxr-xr-x | tools/music/start | 1 |
6 files changed, 94 insertions, 0 deletions
diff --git a/tools/music/Makefile b/tools/music/Makefile new file mode 100644 index 000000000000..488c7eb1b06d --- /dev/null +++ b/tools/music/Makefile @@ -0,0 +1,10 @@ +all: music + +music: iTunes.8 + 8l -o music iTunes.8 + +iTunes.8: iTunes.go + 8g iTunes.go + +clean: + rm -rf *.8 music \ No newline at end of file diff --git a/tools/music/gettitle b/tools/music/gettitle new file mode 100755 index 000000000000..0bd4cc6979ec --- /dev/null +++ b/tools/music/gettitle @@ -0,0 +1,4 @@ +#!/bin/bash + +osascript -e 'tell application "iTunes" to get name of current track' +osascript -e 'tell application "iTunes" to get artist of current track' diff --git a/tools/music/iTunes.8 b/tools/music/iTunes.8 new file mode 100644 index 000000000000..ac5ce58ff133 --- /dev/null +++ b/tools/music/iTunes.8 Binary files differdiff --git a/tools/music/iTunes.go b/tools/music/iTunes.go new file mode 100644 index 000000000000..5eb530f6b34b --- /dev/null +++ b/tools/music/iTunes.go @@ -0,0 +1,79 @@ +/* This program is free software. It comes without any warranty, to + * the extent permitted by applicable law. You can redistribute it + * and/or modify it under the terms of the Do What The Fuck You Want + * To Do Public License, Version 3, as published by Vincent Ambo. See + * included COPYING file for more details. */ + +package main + +import( "fmt" + "exec" + "strings" + "http" + "url" + "flag" + "os" + "time" +) + +var authkey, host, c_artist, c_title string + +func init(){ + flag.StringVar(&authkey, "key", "none", "http auth key") + flag.StringVar(&host, "host", "http://localhost:8080", "host") +} + +func main(){ + flag.Parse() + fmt.Println("Music updater launching. Update occurs once per minute.") + go updaterThread() + + var cc string + for { + fmt.Println("Type \"exit\" to quit") + fmt.Scanf("%s", &cc) + switch(cc) { + case "exit": + os.Exit(1) + default: + fmt.Println("Type \"exit\" to quit") + + } + } +} + +func updaterThread(){ + rValues := make(url.Values) + rValues.Add("artist", "") + rValues.Add("title", "") + rValues.Add("key", authkey) + + for { + title, artist := getTrack() + if (title != c_title) || (artist != c_artist) { + fmt.Println("Updating to: " + title + " - " + artist) + c_artist = artist; c_title = title + rValues.Set("artist", artist) + rValues.Set("title", title) + _, err := http.PostForm(fmt.Sprint(host + "/setsong"), rValues) + if err != nil { + fmt.Println(err.String()) + } + } + time.Sleep(60000000000) + } +} + +func getTrack() (title, artist string){ + a, err := exec.Command("./gettitle").Output() + if err != nil { + fmt.Println("err: " + err.String()) + title = "" + artist = "" + } else { + trackInfo := strings.Split(string(a), "\n") + title = trackInfo[0] + artist = trackInfo[1] + } + return +} \ No newline at end of file diff --git a/tools/music/music b/tools/music/music new file mode 100755 index 000000000000..f91b62fe8a9f --- /dev/null +++ b/tools/music/music Binary files differdiff --git a/tools/music/start b/tools/music/start new file mode 100755 index 000000000000..b9f1358e349f --- /dev/null +++ b/tools/music/start @@ -0,0 +1 @@ +./music -host "http://tazj.in" -key "4058ef41bbca252a7b7e675a61dbf935" |