diff options
Diffstat (limited to 'web/user_agent.go')
| -rw-r--r-- | web/user_agent.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/web/user_agent.go b/web/user_agent.go new file mode 100644 index 0000000..8e4bd4c --- /dev/null +++ b/web/user_agent.go @@ -0,0 +1,26 @@ +package web + +import ( + "fmt" + "net/http" + "os" + "path/filepath" + "runtime" +) + +func init() { + http.DefaultTransport = &userAgentTransport{http.DefaultTransport} +} + +func genUserAgent() string { + return fmt.Sprintf("github.com-Xe-x (%s/%s/%s; %s/bot; +https://github.com/Xe/x/blob/master/web/x.md)", runtime.Version(), runtime.GOOS, runtime.GOARCH, filepath.Base(os.Args[0])) +} + +type userAgentTransport struct { + rt http.RoundTripper +} + +func (uat userAgentTransport) RoundTrip(r *http.Request) (*http.Response, error) { + r.Header.Set("User-Agent", genUserAgent()) + return uat.rt.RoundTrip(r) +} |
