SocialDragon/config/config.go
2020-01-15 23:10:20 +01:00

87 lines
1.8 KiB
Go

package config
import (
"bytes"
"io/ioutil"
"github.com/BurntSushi/toml"
)
// Config defines config fields
type Config struct {
DatabaseConnection string
BindAddress string
AssetsDirectory string
TemplatesDirectory string
ContentDirectory string
ContentWebDirectory string
Snapchat Snapchat
Twitter Twitter
Instagram Instagram
Tumblr Tumblr
Folder Folder
}
// Folder defines fields for Folder configuration
type Folder struct {
Folder string
}
// Tumblr defines fields for Tumblr configuration
type Tumblr struct {
Tag string
APIKey string
}
// Instagram defines fields for Instagram configuration
type Instagram struct {
Tag string
}
// Twitter defines fields for Twitter configuration
type Twitter struct {
ConsumerKey string
ConsumerSecret string
OAuthToken string
OAuthTokenSecret string
Filter []string
}
// Snapchat defines fields for Snapchat configuration
type Snapchat struct {
APIBase string
UserAgent string
UserName string
GetConversations SnapchatEndpoint
GetBlob SnapchatEndpoint
MarkAsSeen SnapchatEndpoint
}
// SnapchatEndpoint defines fields for Snapchat endpoint configuration
type SnapchatEndpoint struct {
UUID string
ClientAuthToken string
RequestToken string
Timestamp string
}
// C is the config handler
var C Config
// LoadConfig loads the configuration from given path
func LoadConfig(path string) error {
_, e := toml.DecodeFile(path, &C)
return e
}
// WriteConfig writes the configuration to the given path
func WriteConfig(path string) error {
buf := new(bytes.Buffer)
err := toml.NewEncoder(buf).Encode(C)
if err != nil {
return err
}
err = ioutil.WriteFile(path, buf.Bytes(), 0644)
return err
}