Quellcode durchsuchen

Only print errors

We might want to differentiate between "no favicon found" and "got an
error", though.  And metrics would be neat.
Lucas Stadler vor 10 Jahren
Ursprung
Commit
7c5318a31e
1 geänderte Dateien mit 16 neuen und 4 gelöschten Zeilen
  1. 16 4
      go/favicon/favicon.go

+ 16 - 4
go/favicon/favicon.go

@ -16,6 +16,7 @@ import (
16 16
17 17
var port = flag.Int("p", 8080, "port [8080]")
18 18
var cacheSize = flag.Int("s", 10000, "cache size [10000]")
19
var debug = flag.Bool("debug", false, "Print out debug info")
19 20
20 21
var faviconCache *lru.Cache
21 22
var lock sync.RWMutex
@ -43,6 +44,7 @@ func HandleGetFavicon(w http.ResponseWriter, r *http.Request) {
43 44
	url := r.URL.Query()["url"][0]
44 45
	favicon, err := GetFaviconCached(url)
45 46
	if err != nil {
47
		fmt.Printf("Error: '%s': %s\n", url, err)
46 48
		w.WriteHeader(http.StatusNotFound)
47 49
		w.Write([]byte(fmt.Sprint(err)))
48 50
		return
@ -87,17 +89,23 @@ func GetFavicon(url string) (string, error) {
87 89
	if favicon, err := GetCanonicalFavicon(url); err == nil {
88 90
		fmt.Println("found favicon.ico")
89 91
		return favicon, nil
92
	} else if *debug {
93
		fmt.Printf("Error: getting /favicon.ico: %s\n", err)
90 94
	}
91 95
92 96
	resp, err := http.Get(url)
93
	fmt.Println("get html", resp, err)
97
	if *debug {
98
		fmt.Println("get html", resp, err)
99
	}
94 100
	if err != nil {
95 101
		return "", err
96 102
	}
97 103
	defer resp.Body.Close()
98 104
99 105
	tree, err := html.Parse(resp.Body)
100
	fmt.Println("parse html", tree, err)
106
	if *debug {
107
		fmt.Println("parse html", tree, err)
108
	}
101 109
	if err != nil {
102 110
		return "", err
103 111
	}
@ -124,7 +132,9 @@ func GetCanonicalFavicon(u string) (string, error) {
124 132
	faviconUrl := fmt.Sprintf("%s://%s/favicon.ico", parsed.Scheme, parsed.Host)
125 133
126 134
	resp, err := http.Get(faviconUrl)
127
	fmt.Println("get favicon.ico", resp, err)
135
	if *debug {
136
		fmt.Println("get favicon.ico", resp, err)
137
	}
128 138
	if err != nil {
129 139
		return "", err
130 140
	}
@ -137,7 +147,9 @@ func GetCanonicalFavicon(u string) (string, error) {
137 147
	if err != nil || n == 0 {
138 148
		return "", errors.New("can't read /favicon.ico")
139 149
	}
140
	fmt.Println("favicon.ico", resp.Request.URL.String(), faviconUrl)
150
	if *debug {
151
		fmt.Println("favicon.ico", resp.Request.URL.String(), faviconUrl)
152
	}
141 153
	return resp.Request.URL.String(), nil
142 154
}
143 155