From dabffdc26b1fbeba192afbad9c5b74e72fa7bed4 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 15 Aug 2015 16:15:40 +0200 Subject: Bypass nswf test on reddit --- href.go | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'href.go') diff --git a/href.go b/href.go index b67bf70..5c5fa1a 100644 --- a/href.go +++ b/href.go @@ -4,6 +4,8 @@ import ( "errors" "log" "net/http" + "net/http/cookiejar" + "net/url" "strings" irc "github.com/fluffle/goirc/client" @@ -37,8 +39,20 @@ func findTitle(n *html.Node) (s string) { return "" } -func FetchTitle(url string) (string, error) { - resp, err := http.Get(url) +func FetchTitle(uri string) (string, error) { + client := &http.Client{} + if strings.Contains(uri, "reddit") { + u, _ := url.Parse(uri) + cookies := []*http.Cookie{ + &http.Cookie{ + Name: "over18", + Value: "1", + }, + } + client.Jar, _ = cookiejar.New(nil) + client.Jar.SetCookies(u, cookies) + } + resp, err := client.Get(uri) if err != nil { return "", err } @@ -75,9 +89,9 @@ func FetchTitle(url string) (string, error) { func ExtractLinks(conn *irc.Conn, line *irc.Line) { for _, v := range strings.Fields(line.Text()) { if strings.HasPrefix(v, "http") { - go func(url string) { - log.Println(line.Nick, url) - t, err := FetchTitle(url) + go func(uri string) { + log.Println(line.Nick, uri) + t, err := FetchTitle(uri) if err != nil { log.Println(err) } -- cgit v1.2.3