log
This commit is contained in:
parent
062e9276f2
commit
661ce08764
|
@ -3,8 +3,16 @@ package main
|
|||
import (
|
||||
"github.com/bwmarrin/discordgo"
|
||||
"quenten.nl/pepebot/discord/mux"
|
||||
"quenten.nl/pepebot/limiter"
|
||||
)
|
||||
|
||||
/*
|
||||
Middleware chain
|
||||
|
||||
Logtoconsole -> loginteraction -> mux -> command
|
||||
|
||||
*/
|
||||
|
||||
func (app *application) LogToConsole(next mux.Command) mux.Command {
|
||||
fn := func(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
app.infoLog.Printf("%s \tsaid: %s\n", m.Author.Username, m.Content)
|
||||
|
@ -12,3 +20,20 @@ func (app *application) LogToConsole(next mux.Command) mux.Command {
|
|||
}
|
||||
return mux.HandlerFunc(fn)
|
||||
}
|
||||
|
||||
func (app *application) LogInteraction(next mux.Command) mux.Command {
|
||||
fn := func(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
// Logging interaction
|
||||
a := limiter.NewAction("Any message")
|
||||
app.limiter.Logs[m.Author.ID] = append(app.limiter.Logs[m.Author.ID], a)
|
||||
|
||||
// Checking if rate limit exceeded
|
||||
err := app.limiter.CheckAllowed(m.Author.ID)
|
||||
if err != nil {
|
||||
mux.NotFound(s, m)
|
||||
} else {
|
||||
next.Execute(s, m)
|
||||
}
|
||||
}
|
||||
return mux.HandlerFunc(fn)
|
||||
}
|
||||
|
|
|
@ -11,6 +11,12 @@ type Command interface {
|
|||
Execute(s *discordgo.Session, m *discordgo.MessageCreate)
|
||||
}
|
||||
|
||||
func NotFound(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
return
|
||||
}
|
||||
|
||||
func NotFoundHandler() Command { return HandlerFunc(NotFound) }
|
||||
|
||||
type HandlerFunc func(s *discordgo.Session, m *discordgo.MessageCreate)
|
||||
|
||||
func (f HandlerFunc) Execute(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
|
|
|
@ -6,3 +6,10 @@ type Action struct {
|
|||
Type string
|
||||
Timestamp time.Time
|
||||
}
|
||||
|
||||
func NewAction(t string) *Action {
|
||||
a := new(Action)
|
||||
a.Timestamp = time.Now()
|
||||
a.Type = t
|
||||
return a
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue