From 5fe432b7c1d6d626699e8091005a0de788d8168a Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 20 Dec 2016 23:05:09 +0100 Subject: links --- href.go | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) (limited to 'href.go') diff --git a/href.go b/href.go index 0799fad..e1a687b 100644 --- a/href.go +++ b/href.go @@ -28,7 +28,7 @@ func title(n *html.Node) (s string) { return "" } -func findTitle(uri string) (string, error) { +func getTitle(uri string) (string, error) { resp, err := http.Get(uri) if err != nil { return "", err @@ -53,26 +53,30 @@ func findTitle(uri string) (string, error) { return title(doc), nil } -func ExtractLinks(conn *irc.Conn, line *irc.Line) { - for _, v := range strings.Fields(line.Text()) { +func links(s string) (ret []string) { + for _, v := range strings.Fields(s) { switch { case strings.HasPrefix(v, "www"): v = "http://" + v fallthrough - case strings.HasPrefix(v, "http"): - go func(uri string) { - log.Println(line.Nick, uri) - t, err := findTitle(uri) - if err != nil { - log.Println(err) - } - if t != "" { - if len(t) > maxLen { - t = t[:maxLen] + "..." - } - conn.Notice(line.Target(), "Title: "+t) - } - }(v) + case strings.HasPrefix(v, "http:"), strings.HasPrefix(v, "https:"): + ret = append(ret, v) + } + } + return +} + +func Links(conn *irc.Conn, line *irc.Line) { + for _, v := range links(line.Text()) { + t, err := getTitle(v) + if err != nil { + log.Println(err) + } + if t != "" { + if len(t) > maxLen { + t = t[:maxLen] + "..." + } + conn.Notice(line.Target(), "Title: "+t) } } } -- cgit v1.2.3