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) } }