subsonic-tui/main.go
Sagi Dayan a4d4c49de9
initial commit
Signed-off-by: Sagi Dayan <sagidayan@gmail.com>
2024-12-14 23:37:05 +02:00

42 lines
1 KiB
Go

package main
import (
"fmt"
"git.dayanhub.com/sagi/subsonic-tui/internal/client"
"git.dayanhub.com/sagi/subsonic-tui/internal/config"
"git.dayanhub.com/sagi/subsonic-tui/internal/playback"
"git.dayanhub.com/sagi/subsonic-tui/internal/tui"
)
func main() {
defer client.ArtCache.Destroy()
// Create Client
subsonicClient := client.NewClient(config.URL())
err := subsonicClient.Authenticate(config.Username(), config.Password())
if err != nil {
// We need to show Login...
login := tui.NewLogin()
err := login.Run()
if err != nil {
panic(err)
}
}
fmt.Println("Trying to login...")
subsonicClient = client.NewClient(config.URL())
err = subsonicClient.Authenticate(config.Username(), config.Password())
if err != nil {
panic(err)
}
// Saving config - will result in adding new defaults to the file
config.SaveConfig()
playbackCtl := playback.NewController(subsonicClient)
defer playbackCtl.Close()
tui := tui.NewPlayer(subsonicClient, playbackCtl)
if err := tui.Run(); err != nil {
panic(err)
}
}