🐛 Fail gracefully when none found

This commit is contained in:
Dan Jones 2023-11-11 18:51:38 -06:00
commit 7a198a0273
7 changed files with 37 additions and 8 deletions

View file

@ -5,7 +5,7 @@ import (
"os" "os"
"codeberg.org/danjones000/strip-beats/files" "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/media"
"codeberg.org/danjones000/strip-beats/utils" "codeberg.org/danjones000/strip-beats/utils"
"github.com/rkoesters/xdg/trash" "github.com/rkoesters/xdg/trash"

View file

@ -3,7 +3,7 @@ package app
import ( import (
"fmt" "fmt"
"codeberg.org/danjones000/strip-beats/input/list" "codeberg.org/danjones000/strip-beats/io/list"
) )
func (st AppStep) Title() string { func (st AppStep) Title() string {

View file

@ -3,8 +3,9 @@ package app
import ( import (
"fmt" "fmt"
"codeberg.org/danjones000/strip-beats/input/boolean" "codeberg.org/danjones000/strip-beats/io/boolean"
"codeberg.org/danjones000/strip-beats/input/list" "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"
"codeberg.org/danjones000/strip-beats/media/brainz" "codeberg.org/danjones000/strip-beats/media/brainz"
"codeberg.org/danjones000/strip-beats/utils" "codeberg.org/danjones000/strip-beats/utils"
@ -51,7 +52,11 @@ func print() {
if err != nil { if err != nil {
panic(err) panic(err)
} }
rec := chooseRec(ids) rec, ok := chooseRec(ids)
if !ok {
m.Message("Couldn't find a marching recording")
return
}
fmt.Println(rec.Title) fmt.Println(rec.Title)
@ -99,7 +104,7 @@ func print() {
tags.TrackCount = media.TrackCount tags.TrackCount = media.TrackCount
} }
func chooseRec(ids media.IdResults) brainz.Recording { func chooseRec(ids media.IdResults) (brainz.Recording, bool) {
var recs []list.Option var recs []list.Option
var rec brainz.Recording var rec brainz.Recording
var err error var err error
@ -122,7 +127,11 @@ func chooseRec(ids media.IdResults) brainz.Recording {
return opt.Title() != "" 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 { func findFirstRelease(rec brainz.Recording) brainz.Release {

View file

@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"os" "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"
"codeberg.org/danjones000/strip-beats/media/brainz" "codeberg.org/danjones000/strip-beats/media/brainz"
) )

20
io/message/message.go Normal file
View file

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