71 lines
1.3 KiB
Go
71 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"net/http"
|
|
"runtime"
|
|
|
|
viper "github.com/spf13/viper"
|
|
)
|
|
|
|
var (
|
|
appID = "gdq-vod-bot"
|
|
appName = "Icedream's GamesDoneQuick VoD Bot"
|
|
appVersion = "dev"
|
|
redditOwnerUsername = "icedream2k9"
|
|
)
|
|
|
|
type config struct {
|
|
ID string
|
|
URL string
|
|
}
|
|
|
|
func setUserAgent(inner http.RoundTripper, userAgent string) http.RoundTripper {
|
|
return &addUGA{
|
|
inner: inner,
|
|
Agent: userAgent,
|
|
}
|
|
}
|
|
|
|
type addUGA struct {
|
|
inner http.RoundTripper
|
|
Agent string
|
|
}
|
|
|
|
func (ug *addUGA) RoundTrip(r *http.Request) (*http.Response, error) {
|
|
r.Header.Set("User-Agent", ug.Agent)
|
|
return ug.inner.RoundTrip(r)
|
|
}
|
|
|
|
func main() {
|
|
vodID := "agdq2020vods"
|
|
|
|
viper.SetDefault("ID", vodID)
|
|
viper.SetDefault("URL", "https://www.reddit.com/r/VODThread/wiki/"+vodID+".json")
|
|
|
|
c := new(config)
|
|
viper.Unmarshal(c)
|
|
|
|
userAgent := fmt.Sprintf(
|
|
"%s:%s:%s %s (by /u/%s)",
|
|
runtime.GOOS,
|
|
appID,
|
|
appName,
|
|
appVersion,
|
|
redditOwnerUsername)
|
|
redditHTTPClient := &http.Client{
|
|
Transport: setUserAgent(http.DefaultTransport, userAgent),
|
|
}
|
|
|
|
videosJSONResponse, err := redditHTTPClient.Get("")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer videosJSONResponse.Body.Close()
|
|
if videosJSONResponse.StatusCode != http.StatusOK {
|
|
log.Fatal(videosJSONResponse.Status)
|
|
return
|
|
}
|
|
}
|