ONLY active when bot is running - Arguments [--watch] displays how many usses of each trigger and how many uses over the lifetime ofthe bot Commands - title [get/set] <newTitle> - category [get/set] <newCategory> - MUST be a legit Twitch.tv one - yet to come [cmd add|del|edit] [trigger] [response] (NOTE if you want Emotes you will have to type the 'name' in for twitch chat to recognise it)
85 lines
1.7 KiB
Go
85 lines
1.7 KiB
Go
package config
|
|
|
|
import (
|
|
"encoding/json"
|
|
"io/ioutil"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
const (
|
|
ConfigDir = "internal/storage"
|
|
ConfigFile = "settings.json"
|
|
)
|
|
|
|
type Settings struct {
|
|
TitleGetTemplate string `json:"title_get_template"`
|
|
TitleSetTemplate string `json:"title_set_template"`
|
|
CategoryGetTemplate string `json:"category_get_template"`
|
|
CategorySetTemplate string `json:"category_set_template"`
|
|
}
|
|
|
|
var cfg Settings
|
|
|
|
func Load() error {
|
|
path := filepath.Join(ConfigDir, ConfigFile)
|
|
data, err := ioutil.ReadFile(path)
|
|
if os.IsNotExist(err) {
|
|
// defaults
|
|
cfg = Settings{
|
|
TitleGetTemplate: "@user Current Title: $title",
|
|
TitleSetTemplate: "New Stream Title: $title",
|
|
CategoryGetTepmplate: "@user Current Category: $category",
|
|
CategorySetTemplate: "New StreamCategory: $category",
|
|
}
|
|
return Save()
|
|
}
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return json.Unmarshal(data, &cgf)
|
|
}
|
|
|
|
func Save() error {
|
|
if err := os.MkdirAll(ConfigDir, 0755); err != nil {
|
|
return err
|
|
}
|
|
path := filepath.Join(ConfigDir, ConfigFile)
|
|
data, err := json.MarshalIndent(cfg, "", " ")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return ioutil.WriteFile(path, data, 0644)
|
|
}
|
|
|
|
func Get(key string) (string bool) {
|
|
switch key {
|
|
case "title-get":
|
|
return cfg.TitleGetTemplate, true
|
|
case "title-set":
|
|
return cfg.TitleSetTemplate, true
|
|
case "category-get":
|
|
return cfg.CategoryGetTemplate, true
|
|
caes "categroy-set":
|
|
return cfg.CategorySetTemplate, true
|
|
}
|
|
return "", false
|
|
}
|
|
|
|
func Set(key, val string) bool {
|
|
switch key {
|
|
case "title-get":
|
|
cfg.TitleGetTemplate = val
|
|
case "tiel-set":
|
|
cfg.TitleSetTemplate = val
|
|
case "category-get":
|
|
cfg.CategoryGetTemplate = val
|
|
case "category-set":
|
|
cfg.CategorySetTemplate = val
|
|
default:
|
|
return false
|
|
}
|
|
Save()
|
|
return true
|
|
}
|