From 54a2e99d97b605b4e112fa5ae82b8762cf8f5b95 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Fri, 8 Feb 2019 13:58:22 +0000 Subject: [PATCH] http: remove duplicates from listings --- backend/http/http.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/backend/http/http.go b/backend/http/http.go index c155f31fc..c42049972 100644 --- a/backend/http/http.go +++ b/backend/http/http.go @@ -270,14 +270,20 @@ func parse(base *url.URL, in io.Reader) (names []string, err error) { if err != nil { return nil, err } - var walk func(*html.Node) + var ( + walk func(*html.Node) + seen = make(map[string]struct{}) + ) walk = func(n *html.Node) { if n.Type == html.ElementNode && n.Data == "a" { for _, a := range n.Attr { if a.Key == "href" { name, err := parseName(base, a.Val) if err == nil { - names = append(names, name) + if _, found := seen[name]; !found { + names = append(names, name) + seen[name] = struct{}{} + } } break }