45 lines
917 B
Go
45 lines
917 B
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/BurntSushi/toml"
|
|
)
|
|
|
|
type Config struct {
|
|
Username string
|
|
Password string
|
|
ProxyAddr string
|
|
Channels []string
|
|
Filter []uint8
|
|
Webhook string
|
|
DbPath string
|
|
CookiePath string
|
|
UseWebServer bool
|
|
HostURL string
|
|
WebPort uint16
|
|
UserAgents []string
|
|
NitterBase string
|
|
IndexTarget string
|
|
}
|
|
|
|
func ConfigFromFile(filePath string) (*Config, error) {
|
|
conf := &Config{
|
|
// Default values
|
|
DbPath: "./data/tweets.db",
|
|
CookiePath: "./data/cookies.json",
|
|
UseWebServer: true,
|
|
WebPort: 8080,
|
|
UserAgents: []string{"discordbot", "curl", "httpie", "lwp-request", "wget", "python-requests", "openbsd ftp", "powershell"},
|
|
NitterBase: "https://xcancel.com",
|
|
}
|
|
|
|
tomlData, err := os.ReadFile(filePath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
_, err = toml.Decode(string(tomlData), conf)
|
|
|
|
return conf, err
|
|
}
|