diff options
| author | Harvey Tindall <hrfee@protonmail.ch> | 2021-04-24 16:37:44 +0100 | 
|---|---|---|
| committer | Harvey Tindall <hrfee@protonmail.ch> | 2021-04-24 16:37:44 +0100 | 
| commit | a2164b0173c5ef052ec7758ab4ddb4e301fd9c0d (patch) | |
| tree | 3837e56d1236c87fe7fb2159506068bd46324216 | |
| parent | c235dd60ddb1b6359c839835b9e44cd9d6726f38 (diff) | |
| download | waybar-mpris-a2164b0173c5ef052ec7758ab4ddb4e301fd9c0d.tar.gz waybar-mpris-a2164b0173c5ef052ec7758ab4ddb4e301fd9c0d.zip  | |
build JSON string instead of json.Marshal-ing
not that this was a problem, but the output is simple enough to
just create it by hand.
| -rw-r--r-- | main.go | 37 | ||||
| -rwxr-xr-x | waybar-mpris | bin | 4362867 -> 4203301 bytes | 
2 files changed, 20 insertions, 17 deletions
@@ -1,7 +1,6 @@  package main  import ( -	"encoding/json"  	"fmt"  	"io"  	"log" @@ -43,12 +42,13 @@ var (  // JSON returns json for waybar to consume.  func playerJSON(p *mpris2.Player) string { -	data := map[string]string{}  	symbol := PLAY -	data["class"] = "paused" +	out := "{\"class\": \""  	if p.Playing {  		symbol = PAUSE -		data["class"] = "playing" +		out += "playing" +	} else { +		out += "paused"  	}  	var pos string  	if SHOW_POS { @@ -96,21 +96,23 @@ func playerJSON(p *mpris2.Player) string {  		}  		text += v + right  	} - -	data["tooltip"] = fmt.Sprintf( -		"%s\nby %s\n", +	out += "\",\"text\":\"" + text + "\"," +	out += "\"tooltip\":\"" + fmt.Sprintf( +		"%s\\nby %s\\n",  		strings.ReplaceAll(p.Title, "&", "&"), -		strings.ReplaceAll(p.Artist, "&", "&")) +		strings.ReplaceAll(p.Artist, "&", "&"), +	)  	if p.Album != "" { -		data["tooltip"] += "from " + strings.ReplaceAll(p.Album, "&", "&") + "\n" -	} -	data["tooltip"] += "(" + p.Name + ")" -	data["text"] = text -	out, err := json.Marshal(data) -	if err != nil { -		return "{}" +		out += "from " + strings.ReplaceAll(p.Album, "&", "&") + "\\n"  	} -	return string(out) +	out += "(" + p.Name + ")\"}" +	return out +	// return fmt.Sprintf("{\"class\":\"%s\",\"text\":\"%s\",\"tooltip\":\"%s\"}", data["class"], data["text"], data["tooltip"]) +	// out, err := json.Marshal(data) +	// if err != nil { +	// 	return "{}" +	// } +	// return string(out)  }  type players struct { @@ -204,10 +206,11 @@ func duplicateOutput(conn net.Conn) {  						return  					}  					str := string(l) +					// Trim extra newline is necessary  					if str[len(str)-2:] == "\n\n" {  						fmt.Print(str[:len(str)-1])  					} else { -						fmt.Print(string(l)) +						fmt.Print(str)  					}  					f.Seek(0, 0)  				} diff --git a/waybar-mpris b/waybar-mpris Binary files differindex a940dcf..71b7cd1 100755 --- a/waybar-mpris +++ b/waybar-mpris  | 
