subsonic-tui/main.go
Sagi Dayan 864d56954a
Some checks failed
ci / check for spelling errors (pull_request) Successful in 20s
ci / code quality (lint/tests) (pull_request) Failing after 1m30s
ci / Make sure build does not fail (pull_request) Has been skipped
ci / notify-fail (pull_request) Failing after 13s
Added ci workflow + fixed linting issues
Signed-off-by: Sagi Dayan <sagidayan@gmail.com>
2024-12-18 17:34:39 +02:00

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)
}
}