diff options
| author | Nathan Perry <avaglir@gmail.com> | 2017-07-26 20:00:31 -0400 |
|---|---|---|
| committer | Nathan Perry <avaglir@gmail.com> | 2017-07-26 20:00:31 -0400 |
| commit | f3224ee0eb4d5def781f5e77121a405df054bfba (patch) | |
| tree | c9f0e4f864168afeb3119ece86014819bfe4b512 | |
| parent | fa3151827fa697c91802b09ae0052429e788b275 (diff) | |
restructure to cmd
| -rw-r--r-- | cmd/main.go | 16 | ||||
| -rw-r--r-- | thulani.go | 44 | ||||
| -rw-r--r-- | util.go | 37 |
3 files changed, 66 insertions, 31 deletions
diff --git a/cmd/main.go b/cmd/main.go new file mode 100644 index 0000000..a0c429b --- /dev/null +++ b/cmd/main.go @@ -0,0 +1,16 @@ +package main + +import ( + "log" + + "github.com/mammothbane/thulani-go" +) + +func main() { + conf, err := thulani.LoadConfig("config.yml") + if err != nil { + log.Fatal(err) + } + + thulani.Run(conf) +} @@ -1,45 +1,27 @@ -package main +package thulani import ( - "encoding/json" - "log" "os" + "os/signal" + "syscall" "github.com/bwmarrin/discordgo" ) -type config struct { - Trigger string `json:"trigger"` - QueueSize uint `json:"queue_size"` - Admin string `json:"admin"` - OpRole string `json:"op_role"` - Server string `json:"server"` - VoiceChannel string `json:"voice_channel"` - Token string `json:"token"` -} - -func (c *config) UnmarshalYAML(unmarshal func(interface{}) error) error { - - return nil -} - -func main() { - file, err := os.Open("config.json") +func Run(conf *Config) { + dg, err := discordgo.New("Bot " + conf.Token) handle(err) - var conf config - handle(json.NewDecoder(file).Decode(&conf)) - - dg, err := discordgo.New() - handle(err) + dg.AddHandler(onReady) + dg.Open() - app := &discordgo.Application{} - app.Name = "Thulani" + sc := make(chan os.Signal, 1) + signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill) + <-sc + dg.Close() } -func handle(err error) { - if err != nil { - log.Fatal(err) - } +func onReady(s *discordgo.Session, m *discordgo.Ready) { + log.Debugf("Logged in as %v (%v)", m.User.Username, m.User.ID) } @@ -0,0 +1,37 @@ +package thulani + +import ( + "encoding/json" + "os" + + "github.com/op/go-logging" +) + +func handle(err error) { + if err != nil { + log.Fatal(err) + } +} + +var log = logging.MustGetLogger("thulani") + +type Config struct { + Trigger string `json:"trigger"` + QueueSize uint `json:"queue_size"` + Admin uint `json:"admin"` + OpRole string `json:"op_role"` + Server string `json:"server"` + VoiceChannel string `json:"voice_channel"` + Token string `json:"token"` +} + +func LoadConfig(filename string) (*Config, error) { + file, err := os.Open("config.json") + if err != nil { + return nil, err + } + + var conf Config + err = json.NewDecoder(file).Decode(&conf) + return &conf, err +} |
