From 4f91ca3f80e03016dcb3dc86e9a3fe06a5e5639b Mon Sep 17 00:00:00 2001 From: rafael-santiago Date: Thu, 29 Aug 2024 22:05:37 -0300 Subject: [PATCH] Make MusicNext() and MusicLast() actions cyclic with RepeatAll active Minor change: it also improves on the Makefile's update rule, making it more stable. --- src/Makefile | 11 +++++++++-- src/internal/actions/music_last.go | 4 ++++ src/internal/actions/music_next.go | 2 ++ src/internal/renders/collection_render.go | 6 ++++-- src/internal/renders/collection_render_test.go | 2 +- src/internal/renders/test-data/expected-eutherpe.html | 2 +- 6 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/Makefile b/src/Makefile index 27e6efe..a0312e5 100644 --- a/src/Makefile +++ b/src/Makefile @@ -21,6 +21,7 @@ define do_update sleep 1s;\ done;\ fi + @sleep 5s @cp eutherpe $$(which eutherpe) && \ cp -rf web/ /etc/eutherpe/web/ && \ systemctl start eutherpe && \ @@ -36,8 +37,14 @@ eutherpe: fi tests: - @go clean -testcache - @go test internal/... -v + @ if [ -f /etc/profile.d/goenv.sh ] ; then\ + . /etc/profile.d/goenv.sh ;\ + go clean -testcache ;\ + go test internal/... -v ;\ + else \ + go clean -testcache ;\ + go test internal/... -v ;\ + fi bootstrap: @$(shell cd .. && ./bootstrap.sh) diff --git a/src/internal/actions/music_last.go b/src/internal/actions/music_last.go index 875d392..bcc9b0b 100644 --- a/src/internal/actions/music_last.go +++ b/src/internal/actions/music_last.go @@ -47,6 +47,10 @@ func MusicLast(eutherpeVars *vars.EutherpeVars, userData *url.Values) error { } if jumpIndex == -1 { eutherpeVars.Player.UpNextCurrentOffset-- + if eutherpeVars.Player.UpNextCurrentOffset == -1 && + eutherpeVars.Player.RepeatAll { + eutherpeVars.Player.UpNextCurrentOffset = len(eutherpeVars.Player.UpNext) - 1 + } } else if jumpIndex < eutherpeVars.Player.UpNextCurrentOffset { eutherpeVars.Player.UpNextCurrentOffset = jumpIndex } diff --git a/src/internal/actions/music_next.go b/src/internal/actions/music_next.go index c5cb525..a49c498 100644 --- a/src/internal/actions/music_next.go +++ b/src/internal/actions/music_next.go @@ -48,6 +48,8 @@ func MusicNext(eutherpeVars *vars.EutherpeVars, userData *url.Values) error { if jumpIndex == -1 { if eutherpeVars.Player.UpNextCurrentOffset < len(eutherpeVars.Player.UpNext) - 1 { eutherpeVars.Player.UpNextCurrentOffset++ + } else if eutherpeVars.Player.RepeatAll { + eutherpeVars.Player.UpNextCurrentOffset = 0 } } else if jumpIndex > eutherpeVars.Player.UpNextCurrentOffset { eutherpeVars.Player.UpNextCurrentOffset = jumpIndex diff --git a/src/internal/renders/collection_render.go b/src/internal/renders/collection_render.go index b807841..41ef2eb 100644 --- a/src/internal/renders/collection_render.go +++ b/src/internal/renders/collection_render.go @@ -28,12 +28,14 @@ func renderCollectionListing(collection mplayer.MusicCollection) string { collectionHTML := "