summaryrefslogtreecommitdiff
path: root/href.go
diff options
context:
space:
mode:
Diffstat (limited to 'href.go')
-rw-r--r--href.go20
1 files changed, 19 insertions, 1 deletions
diff --git a/href.go b/href.go
index 3a9239f..44a6efb 100644
--- a/href.go
+++ b/href.go
@@ -3,10 +3,13 @@ package main
import (
"net/http"
"strings"
+ "fmt"
"golang.org/x/net/html"
)
+var cache = make(map[string]string)
+
func findTitle(n *html.Node) (s string) {
if n.Type == html.ElementNode && n.Data == "title" {
for c := n.FirstChild; c != nil; c = c.NextSibling {
@@ -23,6 +26,10 @@ func findTitle(n *html.Node) (s string) {
}
func FetchTitle(url string) (string, error) {
+ if title, ok := cache[url]; ok {
+ return title, nil
+ }
+
resp, err := http.Get(url)
if err != nil {
return "", err
@@ -34,5 +41,16 @@ func FetchTitle(url string) (string, error) {
return "", err
}
- return findTitle(doc), nil
+ title := findTitle(doc)
+ cache[url] = title
+
+ return title, nil
+}
+
+func showLinks() (s string) {
+ for k, v := range cache {
+ s += fmt.Sprintf("%v (%v) ", k, v)
+ }
+ return
+
}