package ui import ( "github.com/gdamore/tcell/v2" "github.com/rivo/tview" ) const helpText = `[yellow]Global[-] F1-F5 switch view Tab, Shift+Tab switch panel within a view ?, F9 this help (F9 works while typing) q, Ctrl+C quit Esc close dialog / go back [yellow]Movies and Series[-] / focus the search box Enter, a add the selected title (dialog: ↑↓ move, ←→ change a dropdown, Space toggles, Enter/Space opens a list) i interactive release search (library titles) [yellow]Library[-] m switch between movies and series f cycle filter (all, missing, downloaded, monitored, unmonitored) /, Tab text filter (Enter/Esc/Tab returns to the list) t toggle monitored s automatic search (series: all missing, asks first) i, Enter movie: release search; series: seasons and episodes r reload [yellow]Seasons and episodes[-] Enter season: expand/collapse; episode: release search i, s, t release search, automatic search, toggle monitored (on a season they apply to the whole season) [yellow]Release list[-] Enter, g grab the selected release s cycle sort (best, size, age) f hide rejected releases [yellow]Downloads[-] p pause / resume the SABnzbd queue d delete the selected job or entry b remove from arr queue + blocklist t retry a failed download (history) r refresh now [yellow]Log (F5)[-] Popups fade away by themselves; everything they said is kept here. ↑↓, PgUp/PgDn scroll G follow new entries c clear [yellow]Connections[-] ` // showHelp opens the key reference together with the connection state. func (a *App) showHelp() { tv := tview.NewTextView().SetDynamicColors(true).SetScrollable(true) tv.SetBorder(true).SetTitle(" Help — Esc to close ") tv.SetText(helpText + a.serviceSummary()) tv.SetInputCapture(func(ev *tcell.EventKey) *tcell.EventKey { if ev.Key() == tcell.KeyEsc || (ev.Key() == tcell.KeyRune && (ev.Rune() == 'q' || ev.Rune() == '?')) { a.closeModal() return nil } return ev }) a.openModal(tv, 80, 40) }