Started REPL env for custom interactive shell
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)
This commit is contained in:
84
internal/config/config.go
Normal file
84
internal/config/config.go
Normal file
@@ -0,0 +1,84 @@
|
||||
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
|
||||
}
|
Reference in New Issue
Block a user