Subscribe and post RSS feeds to Bluesky
rss bluesky

refactor: pass user agent via transport

+7 -3
+7 -3
internal/rss/feed.go
··· 38 38 // capturingTransport stores the last response so we can read Retry-After, 39 39 // which gofeed.HTTPError does not expose. 40 40 type capturingTransport struct { 41 - inner http.RoundTripper 42 - lastResp *http.Response 41 + inner http.RoundTripper 42 + userAgent string 43 + lastResp *http.Response 43 44 } 44 45 45 46 func (t *capturingTransport) RoundTrip(req *http.Request) (*http.Response, error) { 47 + req = req.Clone(req.Context()) 48 + req.Header.Set("User-Agent", t.userAgent) 49 + req.Header.Set("Accept", "application/rss+xml, application/atom+xml, application/xml, text/xml, */*") 46 50 resp, err := t.inner.RoundTrip(req) 47 51 if resp != nil { 48 52 t.lastResp = resp ··· 71 75 } 72 76 } 73 77 74 - transport := &capturingTransport{inner: http.DefaultTransport} 78 + transport := &capturingTransport{inner: http.DefaultTransport, userAgent: opts.UserAgent} 75 79 parser := gofeed.NewParser() 76 80 parser.Client = &http.Client{Timeout: opts.Timeout, Transport: transport} 77 81 parser.UserAgent = opts.UserAgent