strip-beats/app/run.go

101 lines
1.8 KiB
Go
Raw Normal View History

2023-09-06 16:56:55 -05:00
package app
import (
"fmt"
"os"
2023-09-06 18:46:09 -05:00
"codeberg.org/danjones000/strip-beats/input/boolean"
2023-09-06 16:56:55 -05:00
"codeberg.org/danjones000/strip-beats/media"
)
type AppStep int
const (
Pick AppStep = iota
Watch
2023-09-08 11:00:07 -05:00
Fade
2023-09-23 21:57:56 -05:00
Print
2023-09-06 16:56:55 -05:00
Restart
Quit
)
func quit() {
PickAgain()
fmt.Println("Goodbye!")
os.Exit(0)
}
2023-09-08 18:48:21 -05:00
func testFp() {
fp, err := media.Fingerprint("/home/drj/MyFiles/Videos/WebShows/YouTube/Dolly_Parton_-_Topic/Just_Because_I_m_a_Woman.Dolly_Parton_-_Topic.Fmv-XQerVkM.webm")
if err != nil {
panic(err)
}
// fmt.Printf("%+v\n", fp)
ids, err := media.LookupFingerprint(fp)
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", ids)
quit()
}
2023-09-09 21:02:43 -05:00
func testMb() {
id := "497f2f22-809b-4c9e-a692-72f7d8dcaaa2"
mb, err := media.GetMbRecording(id)
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", mb)
quit()
}
2023-09-23 21:57:56 -05:00
func testPrint() {
SetFile("/home/drj/MyFiles/Videos/WebShows/YouTube/Dolly_Parton_-_Topic/Just_Because_I_m_a_Woman.Dolly_Parton_-_Topic.Fmv-XQerVkM.webm")
print()
quit()
}
2023-09-06 16:56:55 -05:00
func Run(step AppStep) {
2023-09-23 21:57:56 -05:00
// testMb()
testPrint()
2023-09-06 16:56:55 -05:00
for step < Quit {
switch step {
case Pick:
PickAgain()
PickFileWithConf()
if file == nil {
quit()
}
2023-09-06 18:46:09 -05:00
watch := boolean.Choose(fmt.Sprintf("Would you like to watch %s?", file.ShortPath()))
if watch {
step = Watch
2023-09-08 11:00:07 -05:00
} else {
step = mainMenu()
2023-09-06 18:46:09 -05:00
}
2023-09-06 16:56:55 -05:00
case Watch:
media.Watch(file.Format.Path)
2023-09-08 13:17:12 -05:00
fadeAns := boolean.Choose(fmt.Sprintf("Would you like to trim/fade %s?", file.ShortPath()))
if fadeAns {
2023-09-08 11:00:07 -05:00
step = Fade
} else {
step = mainMenu()
}
2023-09-08 13:17:12 -05:00
case Fade:
fadeFile()
listenFaded := boolean.Choose(fmt.Sprintf("Would you like to listen to %s?", tmpfile.ShortPath()))
if listenFaded {
media.Watch(tmpfile.Format.Path)
}
step = mainMenu() // @todo ask to check new file
2023-09-23 21:57:56 -05:00
case Print:
print()
step = mainMenu()
2023-09-06 16:56:55 -05:00
case Quit:
quit()
2023-09-08 11:00:07 -05:00
default:
2023-09-08 13:17:12 -05:00
step = mainMenu()
2023-09-06 16:56:55 -05:00
}
}
}