77 lines
1.7 KiB
Go
77 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"encoding/json"
|
|
"muzzammil.xyz/jsonc"
|
|
"log"
|
|
)
|
|
|
|
type Database struct {
|
|
Host string `"json:host"`
|
|
Port int `"json:port"`
|
|
Username string `"json:username"`
|
|
Password string `"json:password"`
|
|
Workers int `"json:workers"`
|
|
}
|
|
|
|
type MassFollower struct {
|
|
Acct string `"json:acct"`
|
|
Name string `"json:name"`
|
|
Summary string `"json:summary"`
|
|
FollowingCount int `"json:followingcount"`
|
|
FollowLimit int `"json:followlimit"`
|
|
}
|
|
|
|
type ExtAccount struct {
|
|
Username string `"json:username"`
|
|
Password string `"json:password"`
|
|
Endpoint string `"json:endpoint"`
|
|
Followlimit int `"json:followlimit"`
|
|
}
|
|
|
|
type Proxy struct {
|
|
Host string `"json:host"`
|
|
Port int `"json:port"`
|
|
Username string `"json:username'`
|
|
Password string `"json:password"`
|
|
}
|
|
|
|
type Settings struct {
|
|
Autostart []string `"json:autostart"`
|
|
Crawl bool `"json:crawl"`
|
|
Banned []string `"json:banned"`
|
|
Alwaysbot []string `"json:alwaysbot"`
|
|
Proxies []Proxy `"json:proxies"`
|
|
Externalaccounts []ExtAccount `"json:externalaccounts"`
|
|
MassFollowers []MassFollower `"json:massfollowers"`
|
|
Database Database `"json:database"`
|
|
}
|
|
|
|
var settings Settings
|
|
|
|
func StringExists(needle string, haystack []string) (bool) {
|
|
for _, check := range haystack {
|
|
if check == needle {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func getSettings() {
|
|
c, err := ioutil.ReadFile("config.jsonc")
|
|
if (err != nil) {
|
|
log.Fatal("Unable to open config.jsonc, exiting: ", err)
|
|
}
|
|
jsoncbin := jsonc.ToJSON(c) // Calling jsonc.ToJSON() to convert JSONC to JSON
|
|
if jsonc.Valid(jsoncbin) == false {
|
|
log.Fatal("Invalid jsonc, exiting.")
|
|
}
|
|
|
|
err = json.Unmarshal(jsoncbin, &settings)
|
|
if err != nil {
|
|
log.Fatal("Unable to parse config.jsonc, exiting: ", err)
|
|
}
|
|
}
|