summaryrefslogtreecommitdiff
path: root/href.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-12-20 23:05:09 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-12-20 23:05:09 +0100
commit5fe432b7c1d6d626699e8091005a0de788d8168a (patch)
tree527f059bd7c902a8bafb5c64a989e86001d92db4 /href.go
parent6cdda9594a16182816a862fb253ec8ccecf763f0 (diff)
links
Diffstat (limited to 'href.go')
-rw-r--r--href.go38
1 files changed, 21 insertions, 17 deletions
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)
}
}
}