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 +++++++++++++++++++----- href_test.go | 4 ++++ 2 files changed, 23 insertions(+), 5 deletions(-) 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) } diff --git a/href_test.go b/href_test.go index a571ee6..0b0e2f6 100644 --- a/href_test.go +++ b/href_test.go @@ -24,6 +24,10 @@ var titleTestData = []titleTest{ URL: `http://www.openbsd.org`, Title: `OpenBSD`, }, + { + URL: `https://www.reddit.com/r/nsfw`, + Title: `nsfw`, + }, } func TestTitle(t *testing.T) { -- cgit v1.2.3