package main import ( "encoding/json" "io/ioutil" "log" "github.com/dghubble/go-twitter/twitter" "github.com/dghubble/oauth1" ) //Bot stores the data from json botsConfig.json file type Bot struct { Title string `json:"title"` ConsumerKey string `json:"consumer_key"` ConsumerSecret string `json:"consumer_secret"` AccessTokenKey string `json:"access_token_key"` AccessTokenSecret string `json:"access_token_secret"` Client *twitter.Client SinceTweeted int64 `json:"sincetweeted"` Blocked bool `json:"blocked"` SinceBlocked int64 `json:"sinceblocked"` } var botnet []Bot var keywords []string var replies []string func readConfigTokensAndConnect() { file, err := ioutil.ReadFile("botsConfig.json") check(err) content := string(file) json.Unmarshal([]byte(content), &botnet) log.Println("botnetConfig.json read comlete") log.Print("connecting to twitter api") for k, _ := range botnet { configu := oauth1.NewConfig(botnet[k].ConsumerKey, botnet[k].ConsumerSecret) token := oauth1.NewToken(botnet[k].AccessTokenKey, botnet[k].AccessTokenSecret) httpClient := configu.Client(oauth1.NoContext, token) // twitter client client := twitter.NewClient(httpClient) botnet[k].Client = client botnet[k].Blocked = false } log.Println("connection successful") } func readKeywordsConfig() { file, err := ioutil.ReadFile("keywordsConfig.json") check(err) content := string(file) json.Unmarshal([]byte(content), &keywords) } func readRepliesConfig() { file, err := ioutil.ReadFile("repliesConfig.json") check(err) content := string(file) json.Unmarshal([]byte(content), &replies) }