grim/wasdead

Added *.exe to ignore and updated commands to now support mentions also (though goes untested as no one is live)
package main
import (
"flag"
"fmt"
"os"
"os/signal"
"syscall"
"time"
log "github.com/sirupsen/logrus"
"bitbucket.org/TheToyz/nowdead/database"
"bitbucket.org/TheToyz/nowdead/discord"
"bitbucket.org/TheToyz/nowdead/presence"
"bitbucket.org/TheToyz/nowdead/twitch"
)
var (
DiscordToken string
TwitchToken string
DatabaseType string
startTime time.Time
db database.Database
)
func init() {
log.SetOutput(os.Stdout)
log.SetLevel(log.DebugLevel)
flag.StringVar(&DiscordToken, "t", "", "Discord Bot Token")
flag.StringVar(&TwitchToken, "tcid", "", "Twitch Client ID")
flag.StringVar(&DatabaseType, "db_type", "bitcask", "Database type to use (default: bitcask)")
flag.Parse()
}
func main() {
db = database.Get(DatabaseType)
if len(DiscordToken) <= 0 || len(TwitchToken) <= 0 {
log.Panic("Discord Token and Twitch Client ID must be set")
}
if len(TwitchToken) > 0 {
provider, err := twitch.New(TwitchToken)
if err != nil {
log.Panic(err)
}
presence.AddProvider("twitch.tv", provider)
log.Info("Added twitch provider")
}
// create our error channel that's used by the various clients
errChan := make(chan error, 1)
// create the discord client
dc, err := discord.New(DiscordToken, db)
if err != nil {
fmt.Println("error creating Discord session,", err)
return
}
dc.Start(errChan)
defer dc.Shutdown()
log.Info("Connected to discord")
// create a channel for handling unix signals
signalChan := make(chan os.Signal, 1)
signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill)
// start the main loop
log.Info("Bot is now running. Press CTRL-C to exit.")
for {
select {
case err := <-errChan:
if err != nil {
log.Error(err)
return
}
case s := <-signalChan:
log.Infof("caught %s Exiting...", s)
return
}
}
}