IMPROVED: add status to cache (#12)
Reviewed-on: https://gitea.asdf.cafe/abs3nt/gospt/pulls/12
This commit is contained in:
parent
9625551767
commit
7ea37f8061
@ -2,6 +2,7 @@ pipeline:
|
|||||||
build:
|
build:
|
||||||
image: golang:1.19
|
image: golang:1.19
|
||||||
commands:
|
commands:
|
||||||
|
- go mod tidy
|
||||||
- go build -o gospt
|
- go build -o gospt
|
||||||
- mkdir completions
|
- mkdir completions
|
||||||
- ./gospt completion zsh > completions/gospt_zsh
|
- ./gospt completion zsh > completions/gospt_zsh
|
||||||
|
@ -889,11 +889,25 @@ func (c *Commands) Previous(ctx *gctx.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Commands) Status(ctx *gctx.Context) error {
|
func (c *Commands) Status(ctx *gctx.Context) error {
|
||||||
state, err := c.Client().PlayerState(ctx)
|
state, err := cache.DefaultCache().GetOrDo("state", func() (string, error) {
|
||||||
|
state, err := c.Client().PlayerState(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
str, err := c.FormatState(state)
|
||||||
|
if err != nil {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
return str, nil
|
||||||
|
}, 5*time.Second)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return c.PrintState(state)
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
fmt.Println(state)
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Commands) Link(ctx *gctx.Context) (string, error) {
|
func (c *Commands) Link(ctx *gctx.Context) (string, error) {
|
||||||
@ -983,15 +997,14 @@ func (c *Commands) PlaylistTracks(ctx *gctx.Context, playlist spotify.ID, page i
|
|||||||
return c.Client().GetPlaylistTracks(ctx, playlist, spotify.Limit(50), spotify.Offset((page-1)*50))
|
return c.Client().GetPlaylistTracks(ctx, playlist, spotify.Limit(50), spotify.Offset((page-1)*50))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Commands) PrintState(state *spotify.PlayerState) error {
|
func (c *Commands) FormatState(state *spotify.PlayerState) (string, error) {
|
||||||
state.Item.AvailableMarkets = []string{}
|
state.Item.AvailableMarkets = []string{}
|
||||||
state.Item.Album.AvailableMarkets = []string{}
|
state.Item.Album.AvailableMarkets = []string{}
|
||||||
out, err := json.MarshalIndent(state, "", " ")
|
out, err := json.MarshalIndent(state, "", " ")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
fmt.Println(string(out))
|
return (string(out)), nil
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Commands) PrintPlaying(current *spotify.CurrentlyPlaying) error {
|
func (c *Commands) PrintPlaying(current *spotify.CurrentlyPlaying) error {
|
||||||
|
Loading…
Reference in New Issue
Block a user