aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.go32
1 files changed, 18 insertions, 14 deletions
diff --git a/main.go b/main.go
index 6a16b88..206ea44 100644
--- a/main.go
+++ b/main.go
@@ -150,6 +150,10 @@ func secondsToString(seconds int) string {
// JSON returns json for waybar to consume.
func playerJSON(p *player) string {
+ artist := strings.ReplaceAll(p.Artist, "\"", "\\\"")
+ album := strings.ReplaceAll(p.Album, "\"", "\\\"")
+ title := strings.ReplaceAll(p.Title, "\"", "\\\"")
+ name := strings.ReplaceAll(p.Name, "\"", "\\\"")
symbol := PLAY
out := "{\"class\": \""
if p.Playing {
@@ -177,24 +181,24 @@ func playerJSON(p *player) string {
case "SYMBOL":
items = append(items, symbol)
case "ARTIST":
- if p.Artist != "" {
- items = append(items, p.Artist)
+ if artist != "" {
+ items = append(items, artist)
}
case "ALBUM":
- if p.Album != "" {
- items = append(items, p.Album)
+ if album != "" {
+ items = append(items, album)
}
case "TITLE":
- if p.Title != "" {
- items = append(items, p.Title)
+ if title != "" {
+ items = append(items, title)
}
case "POSITION":
if pos != "" && SHOW_POS {
items = append(items, pos)
}
case "PLAYER":
- if p.Name != "" {
- items = append(items, p.Name)
+ if name != "" {
+ items = append(items, name)
}
}
}
@@ -214,14 +218,14 @@ func playerJSON(p *player) string {
text += v + right
}
out += "\",\"text\":\"" + text + "\","
- out += "\"tooltip\":\"" + strings.ReplaceAll(p.Title, "&", "&") + "\\n"
- if p.Artist != "" {
- out += "by " + strings.ReplaceAll(p.Artist, "&", "&") + "\\n"
+ out += "\"tooltip\":\"" + strings.ReplaceAll(title, "&", "&") + "\\n"
+ if artist != "" {
+ out += "by " + strings.ReplaceAll(artist, "&", "&") + "\\n"
}
- if p.Album != "" {
- out += "from " + strings.ReplaceAll(p.Album, "&", "&") + "\\n"
+ if album != "" {
+ out += "from " + strings.ReplaceAll(album, "&", "&") + "\\n"
}
- out += "(" + p.Name + ")\"}"
+ out += "(" + name + ")\"}"
return out
// return fmt.Sprintf("{\"class\":\"%s\",\"text\":\"%s\",\"tooltip\":\"%s\"}", data["class"], data["text"], data["tooltip"])
// out, err := json.Marshal(data)