a
This commit is contained in:
parent
e6ce4e3204
commit
8f528e4171
@ -2,6 +2,7 @@ package commands
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"math"
|
"math"
|
||||||
@ -936,35 +937,36 @@ func activateDevice(ctx *gctx.Context, client *spotify.Client) error {
|
|||||||
|
|
||||||
func GetRadioPlaylist(ctx *gctx.Context, client *spotify.Client) (*spotify.FullPlaylist, error) {
|
func GetRadioPlaylist(ctx *gctx.Context, client *spotify.Client) (*spotify.FullPlaylist, error) {
|
||||||
configDir, _ := os.UserConfigDir()
|
configDir, _ := os.UserConfigDir()
|
||||||
if _, err := os.Stat(filepath.Join(configDir, "gospt/radio.json")); err == nil {
|
playlistFile, err := os.ReadFile(filepath.Join(configDir, "gospt/radio.json"))
|
||||||
playlistFile, err := os.Open(filepath.Join(configDir, "gospt/radio.json"))
|
if errors.Is(err, os.ErrNotExist) {
|
||||||
if err != nil {
|
return CreateRadioPlaylist(ctx, client)
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer playlistFile.Close()
|
|
||||||
playlistValue, err := ioutil.ReadAll(playlistFile)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var playlist *spotify.FullPlaylist
|
|
||||||
err = json.Unmarshal(playlistValue, &playlist)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return playlist, nil
|
|
||||||
}
|
}
|
||||||
// private flag doesnt work
|
|
||||||
playlist, err := client.CreatePlaylistForUser(ctx, ctx.UserId, "autoradio", "Automanaged radio playlist", false, false)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
out, err := json.MarshalIndent(playlist, "", " ")
|
var playlist *spotify.FullPlaylist
|
||||||
if err != nil {
|
err = json.Unmarshal(playlistFile, &playlist)
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
err = ioutil.WriteFile(filepath.Join(configDir, "gospt/radio.json"), out, 0o644)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return playlist, nil
|
return playlist, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CreateRadioPlaylist(ctx *gctx.Context, client *spotify.Client) (*spotify.FullPlaylist, error) {
|
||||||
|
// private flag doesnt work
|
||||||
|
configDir, _ := os.UserConfigDir()
|
||||||
|
playlist, err := client.CreatePlaylistForUser(ctx, ctx.UserId, "autoradio", "Automanaged radio playlist", false, false)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
raw, err := json.MarshalIndent(playlist, "", " ")
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
err = os.WriteFile(filepath.Join(configDir, "gospt/radio.json"), raw, 0o644)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return playlist, nil
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user