diff --git a/app/choose.go b/app/choose.go index 8a10e68..525e18b 100644 --- a/app/choose.go +++ b/app/choose.go @@ -5,7 +5,7 @@ import ( "os" "codeberg.org/danjones000/strip-beats/files" - "codeberg.org/danjones000/strip-beats/input/boolean" + "codeberg.org/danjones000/strip-beats/io/boolean" "codeberg.org/danjones000/strip-beats/media" "codeberg.org/danjones000/strip-beats/utils" "github.com/rkoesters/xdg/trash" diff --git a/app/menu.go b/app/menu.go index 2e5cdd1..5a6e5ff 100644 --- a/app/menu.go +++ b/app/menu.go @@ -3,7 +3,7 @@ package app import ( "fmt" - "codeberg.org/danjones000/strip-beats/input/list" + "codeberg.org/danjones000/strip-beats/io/list" ) func (st AppStep) Title() string { diff --git a/app/print.go b/app/print.go index ac8b44f..1a87c68 100644 --- a/app/print.go +++ b/app/print.go @@ -3,8 +3,9 @@ package app import ( "fmt" - "codeberg.org/danjones000/strip-beats/input/boolean" - "codeberg.org/danjones000/strip-beats/input/list" + "codeberg.org/danjones000/strip-beats/io/boolean" + "codeberg.org/danjones000/strip-beats/io/list" + m "codeberg.org/danjones000/strip-beats/io/message" "codeberg.org/danjones000/strip-beats/media" "codeberg.org/danjones000/strip-beats/media/brainz" "codeberg.org/danjones000/strip-beats/utils" @@ -51,7 +52,11 @@ func print() { if err != nil { panic(err) } - rec := chooseRec(ids) + rec, ok := chooseRec(ids) + if !ok { + m.Message("Couldn't find a marching recording") + return + } fmt.Println(rec.Title) @@ -99,7 +104,7 @@ func print() { tags.TrackCount = media.TrackCount } -func chooseRec(ids media.IdResults) brainz.Recording { +func chooseRec(ids media.IdResults) (brainz.Recording, bool) { var recs []list.Option var rec brainz.Recording var err error @@ -122,7 +127,11 @@ func chooseRec(ids media.IdResults) brainz.Recording { return opt.Title() != "" }) - return list.List("Which recording is the correct one?", recs, nil).(recOpt).rec + if len(recs) < 1 { + return rec, false + } + + return list.List("Which recording is the correct one?", recs, nil).(recOpt).rec, true } func findFirstRelease(rec brainz.Recording) brainz.Release { diff --git a/app/run.go b/app/run.go index 4e62b52..066f6c6 100644 --- a/app/run.go +++ b/app/run.go @@ -4,7 +4,7 @@ import ( "fmt" "os" - "codeberg.org/danjones000/strip-beats/input/boolean" + "codeberg.org/danjones000/strip-beats/io/boolean" "codeberg.org/danjones000/strip-beats/media" "codeberg.org/danjones000/strip-beats/media/brainz" ) diff --git a/input/boolean/boolean.go b/io/boolean/boolean.go similarity index 100% rename from input/boolean/boolean.go rename to io/boolean/boolean.go diff --git a/input/list/list.go b/io/list/list.go similarity index 100% rename from input/list/list.go rename to io/list/list.go diff --git a/io/message/message.go b/io/message/message.go new file mode 100644 index 0000000..c73ffcd --- /dev/null +++ b/io/message/message.go @@ -0,0 +1,20 @@ +package message + +import "github.com/rivo/tview" + +func Message(text string) { + app := tview.NewApplication() + modal := tview.NewModal() + if text != "" { + modal.SetText(text) + } + + modal.AddButtons([]string{"Ok"}). + SetDoneFunc(func(buttonIndex int, buttonLabel string) { + app.Stop() + }) + + if err := app.SetRoot(modal, false).EnableMouse(true).Run(); err != nil { + panic(err) + } +}