mirror of
https://github.com/issadarkthing/gomu.git
synced 2025-04-28 13:48:53 +08:00
format duration string
This commit is contained in:
parent
e17c1b45f0
commit
0d00c4fc73
@ -59,7 +59,7 @@ func (p *Progress) Run() {
|
|||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
|
|
||||||
if p._progress > p.full {
|
if p._progress > p.full || p.player.isSkipped {
|
||||||
|
|
||||||
p._progress = 0
|
p._progress = 0
|
||||||
break
|
break
|
||||||
@ -83,10 +83,10 @@ func (p *Progress) Run() {
|
|||||||
|
|
||||||
x := p._progress * p.limit / p.full
|
x := p._progress * p.limit / p.full
|
||||||
p.textView.SetText(fmt.Sprintf("%s %s%s %s",
|
p.textView.SetText(fmt.Sprintf("%s %s%s %s",
|
||||||
start.String(),
|
fmtDuration(start),
|
||||||
strings.Repeat("■", x),
|
strings.Repeat("■", x),
|
||||||
strings.Repeat("□", p.limit-x),
|
strings.Repeat("□", p.limit-x),
|
||||||
end.String(),
|
fmtDuration(end),
|
||||||
))
|
))
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -108,5 +108,5 @@ func (p *Progress) NewProgress(songTitle string, full, limit int) {
|
|||||||
// sets default title and progress bar
|
// sets default title and progress bar
|
||||||
func (p *Progress) SetDefault() {
|
func (p *Progress) SetDefault() {
|
||||||
p.SetSongTitle("-")
|
p.SetSongTitle("-")
|
||||||
p.textView.SetText(fmt.Sprintf("%s %s %s", "0s", strings.Repeat("□", 100), "0s"))
|
p.textView.SetText(fmt.Sprintf("%s %s %s", "00:00", strings.Repeat("□", 100), "00:00"))
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/gdamore/tcell"
|
"github.com/gdamore/tcell"
|
||||||
"github.com/rivo/tview"
|
"github.com/rivo/tview"
|
||||||
@ -89,9 +88,7 @@ func Playlist(list *tview.List, playBar *Progress, player *Player) *tview.TreeVi
|
|||||||
|
|
||||||
go func () {
|
go func () {
|
||||||
player.Run()
|
player.Run()
|
||||||
list.AddItem(
|
list.AddItem("", "", 0, nil)
|
||||||
fmt.Sprintf("%s | %s", player.length.String(), audioFile.Name),
|
|
||||||
"", 0, nil)
|
|
||||||
} ()
|
} ()
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -102,7 +99,7 @@ func Playlist(list *tview.List, playBar *Progress, player *Player) *tview.TreeVi
|
|||||||
log(err.Error())
|
log(err.Error())
|
||||||
}
|
}
|
||||||
list.AddItem(
|
list.AddItem(
|
||||||
fmt.Sprintf("[ %s ] %s", songLength.Round(time.Second).String(), audioFile.Name),
|
fmt.Sprintf("[ %s ] %s", fmtDuration(songLength), audioFile.Name),
|
||||||
"", 0, nil)
|
"", 0, nil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
31
utils.go
31
utils.go
@ -2,7 +2,11 @@
|
|||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import "os"
|
import (
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
func log(text string) {
|
func log(text string) {
|
||||||
|
|
||||||
@ -21,3 +25,28 @@ func log(text string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func fmtDuration(input time.Duration) string {
|
||||||
|
|
||||||
|
val := input.Round(time.Second).String()
|
||||||
|
|
||||||
|
if !strings.Contains(val, "m") {
|
||||||
|
val = "0m" + val
|
||||||
|
}
|
||||||
|
val = strings.ReplaceAll(val, "h", ":")
|
||||||
|
val = strings.ReplaceAll(val, "m", ":")
|
||||||
|
val = strings.ReplaceAll(val, "s", "")
|
||||||
|
var result []string
|
||||||
|
|
||||||
|
for _, v := range strings.Split(val, ":") {
|
||||||
|
|
||||||
|
if len(v) < 2 {
|
||||||
|
result = append(result, "0" + v)
|
||||||
|
} else {
|
||||||
|
result = append(result, v)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return strings.Join(result, ":")
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user