summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortjp <tjp@ctrl-c.club>2024-01-10 18:03:32 -0700
committertjp <tjp@ctrl-c.club>2024-01-10 18:04:27 -0700
commitb173ca9cb2a6d463efda27cf143a81e0d6caedb8 (patch)
treef52aca9f7485d421932ad5fa26a63412ca9f85b5
parentb7da3dc23d4d2fb6785939de2c0c170fe4ce7e9d (diff)
more messages in interface
-rw-r--r--actions.go14
-rw-r--r--identity.go37
-rw-r--r--mark.go16
-rw-r--r--tour.go35
4 files changed, 79 insertions, 23 deletions
diff --git a/actions.go b/actions.go
index a3cd1d7..fa861fd 100644
--- a/actions.go
+++ b/actions.go
@@ -447,7 +447,7 @@ func parseURL(str string, state *BrowserState, defaultScheme string) (*url.URL,
if i, err := strconv.Atoi(str[idx+2:]); err != nil {
return nil, -1, ErrInvalidLink
} else {
- tour, err := findTour(state, str[2:idx])
+ _, tour, err := findTour(state, str[2:idx])
if err != nil {
return nil, -1, err
}
@@ -584,6 +584,9 @@ func Outline(state *BrowserState, conf *Config) error {
}
state.Modal = []byte(formatted)
+ if len(state.Modal) == 0 {
+ state.Modal = []byte("No headers on the current page\n")
+ }
return Print(state)
}
@@ -602,6 +605,9 @@ func Links(state *BrowserState, conf *Config) error {
return err
}
state.Modal = []byte(formatted)
+ if len(state.Links) == 0 {
+ state.Modal = []byte("There are no links on the current page\n")
+ }
return Print(state)
}
@@ -652,7 +658,11 @@ func Save(state *BrowserState, filename string, conf *Config) error {
i += 1
}
- return os.WriteFile(p, state.Body, 0o644)
+ if err := os.WriteFile(p, state.Body, 0o644); err != nil {
+ return err
+ }
+ state.Modal = []byte(fmt.Sprintf("Saved page to %s\n", p))
+ return Print(state)
}
func Mark(state *BrowserState, args []string, conf *Config) error {
diff --git a/identity.go b/identity.go
index 306c6e9..e864171 100644
--- a/identity.go
+++ b/identity.go
@@ -67,7 +67,12 @@ func IdentityCreate(state *BrowserState, name string) error {
return err
}
state.Identities.ByName[name] = ident
- return saveIdentities(state.Identities)
+ if err := saveIdentities(state.Identities); err != nil {
+ return err
+ }
+
+ state.Modal = []byte(fmt.Sprintf("Created new identity %s\n", name))
+ return Print(state)
}
func IdentityList(state *BrowserState) error {
@@ -102,7 +107,7 @@ func IdentityList(state *BrowserState) error {
state.Modal = buf.Bytes()
if len(state.Modal) == 0 {
- state.Modal = []byte("(empty)\n")
+ state.Modal = []byte("(no identities)\n")
}
return Print(state)
}
@@ -135,7 +140,12 @@ func IdentityDelete(state *BrowserState, name string) error {
if err := removeIdentity(name); err != nil {
return err
}
- return saveIdentities(state.Identities)
+ if err := saveIdentities(state.Identities); err != nil {
+ return err
+ }
+
+ state.Modal = []byte(fmt.Sprintf("Removed identity %s\n", name))
+ return Print(state)
}
func IdentityUseDomain(state *BrowserState, name string, domain string) error {
@@ -159,7 +169,12 @@ func IdentityUseDomain(state *BrowserState, name string, domain string) error {
}
state.Identities.ByDomain[u.Hostname()] = ident
- return saveIdentities(state.Identities)
+ if err := saveIdentities(state.Identities); err != nil {
+ return err
+ }
+
+ state.Modal = []byte(fmt.Sprintf("Identity %s will be used across domain %s\n", name, u.Hostname()))
+ return Print(state)
}
func IdentityUseFolder(state *BrowserState, name string, domain string) error {
@@ -184,7 +199,12 @@ func IdentityUseFolder(state *BrowserState, name string, domain string) error {
u.Path = strings.TrimRight(u.Path, "/")
state.Identities.ByFolder[u.Hostname()+u.Path] = ident
- return saveIdentities(state.Identities)
+ if err := saveIdentities(state.Identities); err != nil {
+ return err
+ }
+
+ state.Modal = []byte(fmt.Sprintf("Identity %s will be used within folder %s%s\n", name, u.Hostname(), u.Path))
+ return Print(state)
}
func IdentityUsePage(state *BrowserState, name string, domain string) error {
@@ -208,7 +228,12 @@ func IdentityUsePage(state *BrowserState, name string, domain string) error {
}
state.Identities.ByPage[u.String()] = ident
- return saveIdentities(state.Identities)
+ if err := saveIdentities(state.Identities); err != nil {
+ return err
+ }
+
+ state.Modal = []byte(fmt.Sprintf("Identity %s will be used on page %s\n", name, u.String()))
+ return Print(state)
}
func showIdent(ident *tls.Config) string {
diff --git a/mark.go b/mark.go
index 0cfe6bc..c162144 100644
--- a/mark.go
+++ b/mark.go
@@ -19,7 +19,12 @@ func MarkAdd(state *BrowserState, conf *Config, name, target string) error {
}
state.Marks[name] = u.String()
- return saveMarks(state.Marks)
+ if err := saveMarks(state.Marks); err != nil {
+ return err
+ }
+
+ state.Modal = []byte(fmt.Sprintf("Saved mark %s to %s\n", name, u.String()))
+ return Print(state)
}
func MarkGo(state *BrowserState, conf *Config, name string) error {
@@ -41,7 +46,7 @@ func MarkList(state *BrowserState) error {
}
state.Modal = buf.Bytes()
if len(state.Modal) == 0 {
- state.Modal = []byte("(empty)\n")
+ state.Modal = []byte("(no marks)\n")
}
return Print(state)
}
@@ -52,7 +57,12 @@ func MarkDelete(state *BrowserState, name string) error {
return err
}
delete(state.Marks, name)
- return saveMarks(state.Marks)
+ if err := saveMarks(state.Marks); err != nil {
+ return err
+ }
+
+ state.Modal = []byte(fmt.Sprintf("Deleted mark %s\n", name))
+ return Print(state)
}
func findMark(state *BrowserState, prefix string) (string, string, error) {
diff --git a/tour.go b/tour.go
index 328af5e..1f60ee9 100644
--- a/tour.go
+++ b/tour.go
@@ -64,7 +64,9 @@ func TourAdd(state *BrowserState, conf *Config, targets []string) error {
if state.CurrentTour != &state.DefaultTour {
return saveTours(state.NamedTours)
}
- return nil
+
+ state.Modal = []byte(fmt.Sprintf("Added %d urls to the tour\n", len(newurls)))
+ return Print(state)
}
func TourAddNext(state *BrowserState, conf *Config, targets []string) error {
@@ -86,7 +88,9 @@ func TourAddNext(state *BrowserState, conf *Config, targets []string) error {
if state.CurrentTour != &state.DefaultTour {
return saveTours(state.NamedTours)
}
- return nil
+
+ state.Modal = []byte(fmt.Sprintf("Added %d urls to go next on the tour\n", len(newurls)))
+ return Print(state)
}
func TourShow(state *BrowserState) error {
@@ -141,7 +145,9 @@ func TourClear(state *BrowserState) error {
if state.CurrentTour != &state.DefaultTour {
return saveTours(state.NamedTours)
}
- return nil
+
+ state.Modal = []byte("Tour is cleared\n")
+ return Print(state)
}
func TourList(state *BrowserState) error {
@@ -180,24 +186,29 @@ func TourGo(state *BrowserState, conf *Config, pos string) error {
}
func TourSelect(state *BrowserState, name string) error {
- tour, err := findTour(state, name)
- if err == nil {
- state.CurrentTour = tour
+ tourName, tour, err := findTour(state, name)
+ if err != nil {
+ return err
}
- return err
+ state.CurrentTour = tour
+
+ state.Modal = []byte(fmt.Sprintf("Tour %s is now active\n", tourName))
+ return Print(state)
}
-func findTour(state *BrowserState, prefix string) (*Tour, error) {
+func findTour(state *BrowserState, prefix string) (string, *Tour, error) {
if prefix == "" {
- return &state.DefaultTour, nil
+ return "", &state.DefaultTour, nil
}
found := 0
var value *Tour
+ var tourName string
for name, tour := range state.NamedTours {
if strings.HasPrefix(name, prefix) {
found += 1
value = tour
+ tourName = name
}
}
@@ -205,10 +216,10 @@ func findTour(state *BrowserState, prefix string) (*Tour, error) {
case 0:
tour := &Tour{}
state.NamedTours[prefix] = tour
- return tour, nil
+ return "", tour, nil
case 1:
- return value, nil
+ return tourName, value, nil
default:
- return nil, fmt.Errorf("too ambiguous - found %d matching tours", found)
+ return "", nil, fmt.Errorf("too ambiguous - found %d matching tours", found)
}
}