46 lines
1 KiB
Go
46 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)
|
|
}
|
|
}
|