summaryrefslogtreecommitdiff
path: root/internal/app/model_keys.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/app/model_keys.go')
-rw-r--r--internal/app/model_keys.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/internal/app/model_keys.go b/internal/app/model_keys.go
index 0e786d4..facf466 100644
--- a/internal/app/model_keys.go
+++ b/internal/app/model_keys.go
@@ -2,6 +2,7 @@ package app
import (
"fmt"
+ "math/rand"
tea "github.com/charmbracelet/bubbletea"
)
@@ -96,6 +97,8 @@ func (m model) handleTableKey(msg tea.KeyMsg) (tea.Model, tea.Cmd) {
return m.resetFilterState()
case "i":
return m, func() tea.Msg { return reindexVideosMsg{} }
+ case "x":
+ return m.selectRandomVideo()
default:
return m.updateTable(msg)
}
@@ -147,3 +150,15 @@ func (m model) resetFilterState() (tea.Model, tea.Cmd) {
m.statusMessage = fmt.Sprintf("Filters cleared (%d videos)", len(m.filtered))
return m, nil
}
+
+func (m model) selectRandomVideo() (tea.Model, tea.Cmd) {
+ if len(m.filtered) == 0 {
+ m.statusMessage = "No videos to select from"
+ return m, nil
+ }
+ idx := rand.Intn(len(m.filtered))
+ m.table.SetCursor(idx)
+ video := m.filtered[idx]
+ m.statusMessage = fmt.Sprintf("Randomly selected: %s", video.Name)
+ return m, nil
+}