forked from kageru/discord-selphybot
helpers and logging
This commit is contained in:
parent
becf7556fc
commit
dadda68ace
46
main.go
46
main.go
|
@ -8,6 +8,7 @@ import (
|
|||
"os/signal"
|
||||
"syscall"
|
||||
"regexp"
|
||||
"log"
|
||||
"github.com/bwmarrin/discordgo"
|
||||
)
|
||||
|
||||
|
@ -42,8 +43,6 @@ func readConfig() Config {
|
|||
return conf
|
||||
}
|
||||
|
||||
|
||||
|
||||
func main() {
|
||||
dg, err := discordgo.New("Bot " + config.Token)
|
||||
if err != nil {
|
||||
|
@ -59,6 +58,13 @@ func main() {
|
|||
return
|
||||
}
|
||||
|
||||
f, err := os.OpenFile("selphybot.log", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
||||
if err != nil {
|
||||
fmt.Println("error opening log file: %v", err)
|
||||
}
|
||||
defer f.Close()
|
||||
log.SetOutput(f)
|
||||
|
||||
fmt.Println("bot running. selphyWoo")
|
||||
sc := make(chan os.Signal, 1)
|
||||
signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill)
|
||||
|
@ -71,12 +77,42 @@ func onJoin(s *discordgo.Session, member *discordgo.GuildMemberAdd) {
|
|||
if !member.User.Bot {
|
||||
s.GuildMemberRoleAdd(config.ServerID, member.User.ID, config.LockedRoleID)
|
||||
}
|
||||
log.Printf("User joined: %s", userToString(member.User))
|
||||
}
|
||||
|
||||
func unlockUser(s *discordgo.Session, id string) {
|
||||
s.GuildMemberRoleRemove(config.ServerID, id, config.LockedRoleID)
|
||||
log.Printf("Removed lock from user: %s", userToString(getUser(s, id)))
|
||||
}
|
||||
|
||||
func userToString(u *discordgo.User) string {
|
||||
return fmt.Sprintf("%s#%s (ID: %s)", u.Username, u.Discriminator, u.ID)
|
||||
}
|
||||
|
||||
func channelToString(c *discordgo.Channel) string {
|
||||
return fmt.Sprintf("%s (ID: %s) on %s", c.Name, c.ID, c.GuildID)
|
||||
}
|
||||
|
||||
func messageToString(m *discordgo.Message) string {
|
||||
return fmt.Sprintf("<%s#%s>: %s", m.Author.Username, m.Author.Discriminator, m.Content)
|
||||
}
|
||||
|
||||
func getChannel(s *discordgo.State, cid string) *discordgo.Channel {
|
||||
channel, _ := s.Channel(cid)
|
||||
return channel
|
||||
}
|
||||
|
||||
func getUser(s *discordgo.Session, uid string) *discordgo.User {
|
||||
user, _ := s.User(uid)
|
||||
return user
|
||||
}
|
||||
|
||||
/*func undelete(s *discordgo.Session, m *discordgo.MessageDelete) {
|
||||
channel, _ := s.State.Channel(m.ChannelID)
|
||||
message, _ := s.State.Message(m.ChannelID, m.ID)
|
||||
log.Println(fmt.Sprintf("Someone deleted a message in %s: “%s”", channel.Name, messageToString(message)))
|
||||
}*/
|
||||
|
||||
func genericReply(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
if m.Author.ID == s.State.User.ID {
|
||||
return
|
||||
|
@ -97,14 +133,18 @@ func genericReply(s *discordgo.Session, m *discordgo.MessageCreate) {
|
|||
if winks {
|
||||
s.ChannelMessageSend(m.ChannelID, fmt.Sprintf("<@%s> faggot", m.Author.ID))
|
||||
s.ChannelMessageDelete(m.ChannelID, m.ID)
|
||||
channel := getChannel(s.State, m.ChannelID)
|
||||
log.Printf("Deleted message by %s in %s. Content: “%s”", userToString(m.Author), channelToString(channel), m.Content)
|
||||
return
|
||||
}
|
||||
|
||||
// As per our majesty’s command:
|
||||
if m.Content == "\\o" {
|
||||
s.ChannelMessageSend(m.ChannelID, "o/")
|
||||
log.Printf("o/ at %s", userToString(m.Author))
|
||||
} else if m.Content == "o/" {
|
||||
s.ChannelMessageSend(m.ChannelID, "\\o")
|
||||
log.Printf("\\o at %s", userToString(m.Author))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -113,6 +153,8 @@ func genericReply(s *discordgo.Session, m *discordgo.MessageCreate) {
|
|||
|
||||
func replyGodmode(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
if m.Content == "print_rules()" {
|
||||
channel := getChannel(s.State, m.ChannelID)
|
||||
log.Printf("print_rules() triggered by %s in %s.", userToString(m.Author), channelToString(channel))
|
||||
embedColor := 0xffb90f // kageru gold
|
||||
embed := &discordgo.MessageEmbed{
|
||||
Author: &discordgo.MessageEmbedAuthor{},
|
||||
|
|
Loading…
Reference in New Issue