discord-pocketbot-go/pocketbot.go

80 lines
2.0 KiB
Go

package main
import (
"flag"
"fmt"
"github.com/bwmarrin/discordgo"
"github.com/bwmarrin/disgord/x/mux"
"log"
"os"
"os/signal"
"syscall"
)
var Session, _ = discordgo.New()
var bot_token string
var bot_channel string
var Router = mux.New()
func init() {
flag.StringVar(&bot_token, "t", "", "Discord Authentication Token")
flag.StringVar(&bot_channel, "bc", "", "Bot status channel")
flag.Parse()
if os.Getenv("DISCORD_TOKEN") != "" {
Session.Token = "Bot " + os.Getenv("DISCORD_TOKEN")
} else {
Session.Token = "Bot " + bot_token
}
if os.Getenv("DISCORD_BOT_CHANNEL") != "" {
bot_channel = os.Getenv("DISCORD_BOT_CHANNEL")
}
}
func main() {
var err error
fmt.Println("pocketbot")
//flag.Parse()
if Session.Token == "" {
log.Println("You must provide a Discord auth token!")
return
}
//Handlers
Session.AddHandler(ready)
Session.AddHandler(Router.OnMessageCreate)
//Set the command prefix
if os.Getenv("POCKETBOT_PREFIX") != "" {
Router.Prefix = os.Getenv("POCKETBOT_PREFIX")
} else {
Router.Prefix = "!"
}
// Register the build-in help command.
Router.Route("help", "Display this message.", Router.Help)
Router.Route("swear", "Make me swear!", getSwear)
Router.Route("maki", "It's Maki Monday my dudes!", makiMonday)
Router.Route("monday", "It's Maki Monday my dudes!", makiMonday)
Router.Route("mixes", "Post the link to my fire mixtapes!", postMixes)
Router.Route("xkcd", "Post a specific, random, or the latest XKCD comic", getXKCD)
//Open a connection to Discord
err = Session.Open()
if err != nil {
log.Printf("Error opening connection to Discord, %s\n", err)
os.Exit(1)
}
//Wait for a CTRL-C
log.Printf("Now running. Press CTRL-C to exit.")
sc := make(chan os.Signal, 1)
signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill)
<-sc
Session.Close()
}
func ready(s *discordgo.Session, event *discordgo.Ready) {
s.UpdateStatus(0, "with droids!")
s.ChannelMessageSend(bot_channel, "This isn't Tatooine...")
}