Pārlūkot izejas kodu

Only print errors

We might want to differentiate between "no favicon found" and "got an
error", though.  And metrics would be neat.
Lucas Stadler 9 gadi atpakaļ
vecāks
revīzija
7c5318a31e
1 mainītis faili ar 16 papildinājumiem un 4 dzēšanām
  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