42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
package spotify
|
|
|
|
import (
|
|
"errors"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"github.com/bjarneo/cliamp/internal/appdir"
|
|
)
|
|
|
|
// DefaultClientID is the librespot keymaster client_id, shared by spotify-player
|
|
// and other librespot-based players. Used when the user hasn't configured their
|
|
// own client_id — Spotify's loopback exception lets it work with any 127.0.0.1
|
|
// port, and it predates the Nov 27, 2024 dev-mode quota restriction so /v1/search
|
|
// and other catalog endpoints stay accessible.
|
|
const DefaultClientID = "65b708073fc0480ea92a077233ca87bd"
|
|
|
|
// CredsPath returns the absolute path to the stored Spotify credentials file.
|
|
func CredsPath() (string, error) {
|
|
dir, err := appdir.Dir()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return filepath.Join(dir, "spotify_credentials.json"), nil
|
|
}
|
|
|
|
// DeleteCreds removes the stored Spotify credentials file.
|
|
// Returns true if a file was removed, false if it did not exist.
|
|
func DeleteCreds() (bool, error) {
|
|
path, err := CredsPath()
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
if err := os.Remove(path); err != nil {
|
|
if errors.Is(err, os.ErrNotExist) {
|
|
return false, nil
|
|
}
|
|
return false, err
|
|
}
|
|
return true, nil
|
|
}
|