39 lines
747 B
Go
39 lines
747 B
Go
package commands
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"time"
|
|
|
|
"github.com/zmb3/spotify/v2"
|
|
)
|
|
|
|
func (c *Commander) Status() error {
|
|
state, err := c.Cache.GetOrDo("state", func() (string, error) {
|
|
state, err := c.Client().PlayerState(c.Context)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
str, err := c.FormatState(state)
|
|
if err != nil {
|
|
return "", nil
|
|
}
|
|
return str, nil
|
|
}, 5*time.Second)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
fmt.Println(state)
|
|
return nil
|
|
}
|
|
|
|
func (c *Commander) FormatState(state *spotify.PlayerState) (string, error) {
|
|
state.Item.AvailableMarkets = []string{}
|
|
state.Item.Album.AvailableMarkets = []string{}
|
|
out, err := json.MarshalIndent(state, "", " ")
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return (string(out)), nil
|
|
}
|