discordo/util/config.go
rigormorrtiss 1a2be50e14 feat: implement Threads (#25)
* main: refactor MESSAGe_CREATE event to separate function

* main: add thread channel as child to guild text channel

* main: write thread channel messages to messages TextView on select

* *: refactor to use for range loops

* main: write discord.Message.ReferencedMessage if message type is ThreadStarterMessage

* fix(util): write Message.Content if it is not an empty string

* refactor(util): remove WriteMessages

* refactor(main): defer-close websocket connection

* refactor(main): update api.UserAgent to latest

* refactor: use named return values

* fix: increase guilds TreeView fixedSize

* docs(README): update preview
2021-08-15 10:01:02 +04:00

45 lines
879 B
Go

package util
import (
"encoding/json"
"os"
)
type Theme struct {
DropDownBackground string `json:"dropdown.background"`
TreeViewBackground string `json:"treeview.background"`
TextViewBackground string `json:"textview.background"`
InputFieldBackground string `json:"inputField.background"`
}
type Config struct {
GetMessagesLimit uint `json:"getMessagesLimit"`
Theme *Theme `json:"theme"`
}
func NewConfig() *Config {
userHomeDir, err := os.UserHomeDir()
if err != nil {
panic(err)
}
var c Config = Config{
GetMessagesLimit: 50,
Theme: &Theme{},
}
configPath := userHomeDir + "/.config/discordo/config.json"
if _, err := os.Stat(configPath); os.IsNotExist(err) {
return &c
}
d, err := os.ReadFile(configPath)
if err != nil {
panic(err)
}
if err = json.Unmarshal(d, &c); err != nil {
panic(err)
}
return &c
}