This commit is contained in:
jjohnstondev 2023-01-07 08:19:19 -08:00
parent e9b7c73342
commit eaf4554765
2 changed files with 72 additions and 13 deletions

View File

@ -65,6 +65,31 @@ func GetClient(ctx context.Context) (*spotify.Client, error) {
return nil, err return nil, err
} }
client := spotify.New(auth.Client(context.Background(), tok)) client := spotify.New(auth.Client(context.Background(), tok))
new_token, err := client.Token()
if err != nil {
return nil, err
}
if new_token != tok {
out, err := json.MarshalIndent(new_token, "", " ")
if err != nil {
panic(err.Error())
}
homdir, _ := os.UserHomeDir()
err = ioutil.WriteFile(filepath.Join(homdir, ".config/gospt/auth.json"), out, 0o644)
if err != nil {
panic("FAILED TO SAVE AUTH")
}
}
out, err := json.MarshalIndent(tok, "", " ")
if err != nil {
panic(err.Error())
}
homdir, _ := os.UserHomeDir()
err = ioutil.WriteFile(filepath.Join(homdir, ".config/gospt/auth.json"), out, 0o644)
if err != nil {
panic("FAILED TO SAVE AUTH")
}
return client, nil return client, nil
} }
// first start an HTTP server // first start an HTTP server

View File

@ -13,39 +13,73 @@ func Run(client *spotify.Client, args []string) error {
if err != nil { if err != nil {
return fmt.Errorf("Failed to get current user") return fmt.Errorf("Failed to get current user")
} }
fmt.Println("YOU ARE", user.DisplayName) fmt.Println("The following commands are currently supported:\nplay pause next shuffle\nhave fun", user.DisplayName)
return nil return nil
} }
ctx := context.Background() ctx := context.Background()
switch args[0] { switch args[0] {
case "play": case "play":
err := client.Play(ctx) err := Play(ctx, client, args)
if err != nil { if err != nil {
return err return err
} }
fmt.Println("Playing!")
case "pause": case "pause":
err := client.Pause(ctx) err := Pause(ctx, client, args)
if err != nil { if err != nil {
return err return err
} }
fmt.Println("Pausing!")
case "next": case "next":
err := client.Next(ctx) err := Skip(ctx, client, args)
if err != nil { if err != nil {
return err return err
} }
fmt.Println("Skipping!")
case "shuffle": case "shuffle":
state, err := client.PlayerState(ctx) err := Shuffle(ctx, client, args)
if err != nil {
return fmt.Errorf("Failed to get current playstate")
}
err = client.Shuffle(ctx, !state.ShuffleState)
if err != nil { if err != nil {
return err return err
} }
fmt.Println("Shuffle set to", !state.ShuffleState) default:
return fmt.Errorf("Unsupported Command")
} }
return nil return nil
} }
func Play(ctx context.Context, client *spotify.Client, args []string) error {
err := client.Play(ctx)
if err != nil {
return err
}
fmt.Println("Playing!")
return nil
}
func Pause(ctx context.Context, client *spotify.Client, args []string) error {
err := client.Pause(ctx)
if err != nil {
return err
}
fmt.Println("Pausing!")
return nil
}
func Skip(ctx context.Context, client *spotify.Client, args []string) error {
err := client.Next(ctx)
if err != nil {
return err
}
fmt.Println("Skipping!")
return nil
}
func Shuffle(ctx context.Context, client *spotify.Client, args []string) error {
state, err := client.PlayerState(ctx)
if err != nil {
return fmt.Errorf("Failed to get current playstate")
}
err = client.Shuffle(ctx, !state.ShuffleState)
if err != nil {
return err
}
fmt.Println("Shuffle set to", !state.ShuffleState)
return nil
}