mirror of
https://github.com/makew0rld/amfora.git
synced 2025-02-02 15:07:34 -05:00
✨ New search vs. URL detection logic
This commit is contained in:
parent
507c6e8dec
commit
a0ae0ca835
@ -3,6 +3,7 @@ package display
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
@ -26,6 +27,12 @@ var termH int
|
|||||||
// The user input and URL display bar at the bottom
|
// The user input and URL display bar at the bottom
|
||||||
var bottomBar = cview.NewInputField()
|
var bottomBar = cview.NewInputField()
|
||||||
|
|
||||||
|
// When the bottom bar string has a space, this regex decides whether it's
|
||||||
|
// a non-encoded URL or a search string.
|
||||||
|
// See this comment for details:
|
||||||
|
// https://github.com/makeworld-the-better-one/amfora/issues/138#issuecomment-740961292
|
||||||
|
var hasSpaceisURL = regexp.MustCompile(`[^ ]+\.[^ ].*/.`)
|
||||||
|
|
||||||
// Viewer for the tab primitives
|
// Viewer for the tab primitives
|
||||||
// Pages are named as strings of tab numbers - so the textview for the first tab
|
// Pages are named as strings of tab numbers - so the textview for the first tab
|
||||||
// is held in the page named "0".
|
// is held in the page named "0".
|
||||||
@ -176,8 +183,7 @@ func Init() {
|
|||||||
} else {
|
} else {
|
||||||
// It's a full URL or search term
|
// It's a full URL or search term
|
||||||
// Detect if it's a search or URL
|
// Detect if it's a search or URL
|
||||||
if strings.Contains(query, " ") ||
|
if strings.Contains(query, " ") && !hasSpaceisURL.MatchString(query) {
|
||||||
(!strings.Contains(query, "//") && !strings.Contains(query, ".") && !strings.HasPrefix(query, "about:")) {
|
|
||||||
u := viper.GetString("a-general.search") + "?" + gemini.QueryEscape(query)
|
u := viper.GetString("a-general.search") + "?" + gemini.QueryEscape(query)
|
||||||
cache.RemovePage(u) // Don't use the cached version of the search
|
cache.RemovePage(u) // Don't use the cached version of the search
|
||||||
URL(u)
|
URL(u)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user