✨ Add temp file
For trimming/fading
This commit is contained in:
parent
e0bc00d779
commit
a41880dad5
3 changed files with 46 additions and 11 deletions
|
|
@ -1,14 +1,18 @@
|
||||||
package app
|
package app
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
p "path"
|
||||||
|
|
||||||
"codeberg.org/danjones000/strip-beats/files"
|
"codeberg.org/danjones000/strip-beats/files"
|
||||||
"codeberg.org/danjones000/strip-beats/input/boolean"
|
"codeberg.org/danjones000/strip-beats/input/boolean"
|
||||||
"codeberg.org/danjones000/strip-beats/media"
|
"codeberg.org/danjones000/strip-beats/media"
|
||||||
"fmt"
|
"github.com/rkoesters/xdg/trash"
|
||||||
p "path"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var file *media.Probe
|
var file *media.Probe
|
||||||
|
var tmpfile *media.Probe
|
||||||
|
|
||||||
func PickNewFile() media.Probe {
|
func PickNewFile() media.Probe {
|
||||||
path := files.PickRandomFile()
|
path := files.PickRandomFile()
|
||||||
|
|
@ -21,19 +25,19 @@ func SetFile(path string) media.Probe {
|
||||||
return f
|
return f
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SetTmpFile(path string) media.Probe {
|
||||||
|
f := media.ProbeFile(path)
|
||||||
|
tmpfile = &f
|
||||||
|
return f
|
||||||
|
}
|
||||||
|
|
||||||
func PickFileWithConf() media.Probe {
|
func PickFileWithConf() media.Probe {
|
||||||
var path string
|
var path string
|
||||||
var msg string
|
var msg string
|
||||||
var base string
|
|
||||||
var dir string
|
|
||||||
good := false
|
good := false
|
||||||
for !good {
|
for !good {
|
||||||
path = files.PickRandomFile()
|
path = files.PickRandomFile()
|
||||||
base = p.Base(path)
|
msg = fmt.Sprintf("We've selected %s\nIs that ok?", getShortPath(path))
|
||||||
dir = p.Dir(path)
|
|
||||||
dir = p.Base(dir)
|
|
||||||
|
|
||||||
msg = fmt.Sprintf("We've selected %s%s%s\nIs that ok?", dir, "/", base)
|
|
||||||
good = boolean.Choose(msg)
|
good = boolean.Choose(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -47,6 +51,34 @@ func GetFile() media.Probe {
|
||||||
return *file
|
return *file
|
||||||
}
|
}
|
||||||
|
|
||||||
func ForgetFile() {
|
func GetTmpFile() media.Probe {
|
||||||
file = nil
|
if tmpfile == nil {
|
||||||
|
return GetFile()
|
||||||
|
}
|
||||||
|
return *tmpfile
|
||||||
|
}
|
||||||
|
|
||||||
|
func BailOut() {
|
||||||
|
if tmpfile != nil {
|
||||||
|
os.Remove(tmpfile.Format.Path)
|
||||||
|
}
|
||||||
|
file = nil
|
||||||
|
tmpfile = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func Finish() {
|
||||||
|
if file != nil {
|
||||||
|
err := trash.Trash(file.Format.Path)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BailOut()
|
||||||
|
}
|
||||||
|
|
||||||
|
func getShortPath(path string) string {
|
||||||
|
base := p.Base(path)
|
||||||
|
dir := p.Dir(path)
|
||||||
|
dir = p.Base(dir)
|
||||||
|
return fmt.Sprintf("%s/%s", dir, base)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1
go.mod
1
go.mod
|
|
@ -9,6 +9,7 @@ require (
|
||||||
github.com/creack/pty v1.1.18
|
github.com/creack/pty v1.1.18
|
||||||
github.com/kirsle/configdir v0.0.0-20170128060238-e45d2f54772f
|
github.com/kirsle/configdir v0.0.0-20170128060238-e45d2f54772f
|
||||||
github.com/rivo/tview v0.0.0-20230826224341-9754ab44dc1c
|
github.com/rivo/tview v0.0.0-20230826224341-9754ab44dc1c
|
||||||
|
github.com/rkoesters/xdg v0.0.1
|
||||||
github.com/spf13/cobra v1.7.0
|
github.com/spf13/cobra v1.7.0
|
||||||
github.com/u2takey/ffmpeg-go v0.5.0
|
github.com/u2takey/ffmpeg-go v0.5.0
|
||||||
golang.org/x/term v0.11.0
|
golang.org/x/term v0.11.0
|
||||||
|
|
|
||||||
2
go.sum
2
go.sum
|
|
@ -52,6 +52,8 @@ github.com/rivo/tview v0.0.0-20230826224341-9754ab44dc1c/go.mod h1:nVwGv4MP47T0j
|
||||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||||
github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw=
|
github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw=
|
||||||
github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||||
|
github.com/rkoesters/xdg v0.0.1 h1:RmfYxghVvIsb4d51u5LtNOcwqY5r3P44u6o86qqvBMA=
|
||||||
|
github.com/rkoesters/xdg v0.0.1/go.mod h1:5DcbjvJkY00fIOKkaBnylbC/rmc1NNJP5dmUcnlcm7U=
|
||||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||||
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
|
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue