diff options
Diffstat (limited to 'internal')
-rw-r--r-- | internal/feed/feed.go | 1 | ||||
-rw-r--r-- | internal/http/client.go | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/internal/feed/feed.go b/internal/feed/feed.go index ffe831f..f31de65 100644 --- a/internal/feed/feed.go +++ b/internal/feed/feed.go @@ -38,6 +38,7 @@ func (feed *Feed) Context() http.Context { return http.Context{ Timeout: feed.Global.Timeout, DisableTLS: feed.NoTLS, + Cookies: feed.Cookies, } } diff --git a/internal/http/client.go b/internal/http/client.go index 17eb0cc..4272a5b 100644 --- a/internal/http/client.go +++ b/internal/http/client.go @@ -23,6 +23,7 @@ type Error struct { type Context struct { Timeout int DisableTLS bool + Cookies []Cookie } func (err Error) Error() string { @@ -53,6 +54,11 @@ func client(disableTLS bool) *http.Client { var noop ctxt.CancelFunc = func() {} +type Cookie struct { + Name string + Value string +} + func Get(url string, ctx Context) (resp *http.Response, cancel ctxt.CancelFunc, err error) { prematureExit := true stdCtx, ctxCancel := ctx.StdContext() @@ -76,6 +82,11 @@ func Get(url string, ctx Context) (resp *http.Response, cancel ctxt.CancelFunc, } req.Header.Set("User-Agent", "Feed2Imap-Go/1.0") + for _, c := range ctx.Cookies { + cookie := http.Cookie{Name: c.Name, Value: c.Value} + req.AddCookie(&cookie) + } + resp, err = client(ctx.DisableTLS).Do(req) if err != nil { return nil, noop, err |