package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"io/ioutil"
|
|
|
|
"github.com/dghubble/go-twitter/twitter"
|
|
"github.com/dghubble/oauth1"
|
|
)
|
|
|
|
type Config struct {
|
|
Title string `json:"title"`
|
|
Consumer_key string `json:"consumer_key"`
|
|
Consumer_secret string `json:"consumer_secret"`
|
|
Access_token_key string `json:"access_token_key"`
|
|
Access_token_secret string `json:"access_token_secret"`
|
|
}
|
|
type Flock struct {
|
|
ScreenNames []string
|
|
Clients []*twitter.Client
|
|
}
|
|
|
|
func readConfigTokensAndConnect() (flock Flock) {
|
|
var config []Config
|
|
var clients []*twitter.Client
|
|
|
|
file, e := ioutil.ReadFile("flockConfig.json")
|
|
if e != nil {
|
|
fmt.Println("error:", e)
|
|
}
|
|
content := string(file)
|
|
json.Unmarshal([]byte(content), &config)
|
|
fmt.Println("flockConfig.json read comlete")
|
|
|
|
fmt.Print("connecting to twitter api --> ")
|
|
for i := 0; i < len(config); i++ {
|
|
configu := oauth1.NewConfig(config[i].Consumer_key, config[i].Consumer_secret)
|
|
token := oauth1.NewToken(config[i].Access_token_key, config[i].Access_token_secret)
|
|
httpClient := configu.Client(oauth1.NoContext, token)
|
|
// twitter client
|
|
client := twitter.NewClient(httpClient)
|
|
clients = append(clients, client)
|
|
flock.ScreenNames = append(flock.ScreenNames, config[i].Title)
|
|
}
|
|
flock.Clients = clients
|
|
|
|
fmt.Println("connection successfull")
|
|
|
|
return flock
|
|
}
|