Skip to content

Commit

Permalink
feat: add recettator reactions
Browse files Browse the repository at this point in the history
  • Loading branch information
moul committed Apr 2, 2020
1 parent e298b1c commit 6dd327c
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 10 deletions.
6 changes: 4 additions & 2 deletions chaos-bot/Makefile
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
RUN_OPTS ?= --dev --debug

include .env
export sed 's/=.*//' .env

install:
go install

run: install
chaos-bot -t $(DISCORD_TOKEN)
chaos-bot -t $(DISCORD_TOKEN) $(RUN_OPTS)

docker:
docker build -t ultreme/chaos-bot .
docker run -it --rm ultreme/chaos-bot -t $(DISCORD_TOKEN)
docker run -it --rm ultreme/chaos-bot -t $(DISCORD_TOKEN) $(RUN_OPTS)
7 changes: 6 additions & 1 deletion chaos-bot/commands.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,12 @@ func doRecettator(s *discordgo.Session, m *discordgo.MessageCreate) error {
if err != nil {
return err
}
s.ChannelMessageSend(m.ChannelID, "```markdown\n"+markdown+"\n```")
msg, err := s.ChannelMessageSend(m.ChannelID, "```markdown\n"+markdown+"\n```")
if err != nil {
return err
}
s.MessageReactionAdd(m.ChannelID, msg.ID, "😋")
s.MessageReactionAdd(m.ChannelID, msg.ID, "🤮")
return nil
}

Expand Down
2 changes: 1 addition & 1 deletion chaos-bot/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ go 1.14
require (
github.com/bwmarrin/discordgo v0.20.2
github.com/hako/durafmt v0.0.0-20191009132224-3f39dc1ed9f4
github.com/kr/pretty v0.1.0 // indirect
gopkg.in/yaml.v2 v2.2.8
moul.io/godev v1.6.0
ultre.me/recettator v0.4.0
)
9 changes: 9 additions & 0 deletions chaos-bot/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ github.com/bwmarrin/discordgo v0.20.2 h1:nA7jiTtqUA9lT93WL2jPjUp8ZTEInRujBdx1C9g
github.com/bwmarrin/discordgo v0.20.2/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/google/uuid v1.0.0 h1:b4Gk+7WdP/d3HZH8EJsZpvV7EtDOgaZLtnaNGIu1adA=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
Expand All @@ -18,6 +20,8 @@ github.com/huandu/xstrings v1.2.0 h1:yPeWdRnmynF7p+lLYz0H2tthW9lqhMJrQV/U7yy4wX0
github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4=
github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28=
github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
Expand All @@ -34,11 +38,16 @@ golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16 h1:y6ce7gCWtnH+m3dCjzQ1PC
golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20190709130402-674ba3eaed22 h1:0efs3hwEZhFKsCoP8l6dDB1AZWMgnEl3yWXWRZTOaEA=
gopkg.in/yaml.v3 v3.0.0-20190709130402-674ba3eaed22/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
moul.io/godev v1.6.0 h1:ms1aI6o9k+PhmMdTR7Aw5iDHPu56xtnmrUgdfLKPspc=
moul.io/godev v1.6.0/go.mod h1:5lgSpI1oH7xWpLl2Ew/Nsgk8DiNM6FzN9WV9+lgW8RQ=
ultre.me/recettator v0.4.0 h1:h6Xq3bfiLu8jaQSLarOU5ArD4Q7W33pNGhSl3tQqCiY=
ultre.me/recettator v0.4.0/go.mod h1:snUoYZS9gzrGRq6tlKDRwBExrzGLjcWS05QVLhSuztA=
33 changes: 27 additions & 6 deletions chaos-bot/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,29 +11,38 @@ import (

"github.com/bwmarrin/discordgo"
"github.com/hako/durafmt"
"moul.io/godev"
)

func main() {
var token string
var (
token string
devMode bool
debug bool
)

flag.StringVar(&token, "t", "", "Bot Token")
// FIXME: --dev (only in pv)
// FIXME: --debug
flag.BoolVar(&devMode, "dev", false, "Only reply in PV")
flag.BoolVar(&debug, "debug", false, "Verbose")
flag.Parse()

err := run(token)
err := run(token, devMode, debug)
if err != nil {
log.Fatalf("error: %v", err)
}
}

func run(token string) error {
func run(token string, devMode bool, debug bool) error {
log.Printf("starting bot, devMode=%v, debug=%v", devMode, debug)
dg, err := discordgo.New("Bot " + token)
if err != nil {
return err
}

b := bot{
startedAt: time.Now(),
devMode: devMode,
debug: debug,
}
commands["!info"] = b.doInfo

Expand All @@ -57,13 +66,21 @@ type bot struct {
seenMessages int
seenCommands int
seenErrors int
devMode bool
debug bool
}

func (b *bot) onMessageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
// avoid loop
if m.Author.ID == s.State.User.ID {
return
}
if b.debug {
log.Println(godev.JSON(m))
}
if b.devMode && m.GuildID != "" {
return
}

b.seenMessages++
command, found := commands[m.Content] // FIXME: split the content and support args
Expand All @@ -72,7 +89,11 @@ func (b *bot) onMessageCreate(s *discordgo.Session, m *discordgo.MessageCreate)
}
b.seenCommands++

log.Printf("channel: %q, author: %s#%s, input: %q", m.ChannelID, m.Author.Username, m.Author.Discriminator, m.Content)
channel := m.ChannelID
if m.GuildID == "" {
channel = "PV"
}
log.Printf("channel: %q, author: %s#%s, input: %q", channel, m.Author.Username, m.Author.Discriminator, m.Content)

err := command(s, m)
if err != nil {
Expand Down

0 comments on commit 6dd327c

Please sign in to comment.