about summary refs log tree commit diff
path: root/tools/music
diff options
context:
space:
mode:
Diffstat (limited to 'tools/music')
-rw-r--r--tools/music/Makefile10
-rwxr-xr-xtools/music/gettitle4
-rw-r--r--tools/music/iTunes.8bin0 -> 37608 bytes
-rw-r--r--tools/music/iTunes.go79
-rwxr-xr-xtools/music/musicbin0 -> 2843022 bytes
-rwxr-xr-xtools/music/start1
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"