log
This commit is contained in:
parent
062e9276f2
commit
661ce08764
@ -3,8 +3,16 @@ package main
|
|||||||
import (
|
import (
|
||||||
"github.com/bwmarrin/discordgo"
|
"github.com/bwmarrin/discordgo"
|
||||||
"quenten.nl/pepebot/discord/mux"
|
"quenten.nl/pepebot/discord/mux"
|
||||||
|
"quenten.nl/pepebot/limiter"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
Middleware chain
|
||||||
|
|
||||||
|
Logtoconsole -> loginteraction -> mux -> command
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
func (app *application) LogToConsole(next mux.Command) mux.Command {
|
func (app *application) LogToConsole(next mux.Command) mux.Command {
|
||||||
fn := func(s *discordgo.Session, m *discordgo.MessageCreate) {
|
fn := func(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||||
app.infoLog.Printf("%s \tsaid: %s\n", m.Author.Username, m.Content)
|
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)
|
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)
|
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)
|
type HandlerFunc func(s *discordgo.Session, m *discordgo.MessageCreate)
|
||||||
|
|
||||||
func (f HandlerFunc) Execute(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
|
Type string
|
||||||
Timestamp time.Time
|
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
Block a user