From 694e03ae139dfb577b1740a11a00e1f6a231bb0d Mon Sep 17 00:00:00 2001 From: a Date: Tue, 14 May 2024 00:58:51 -0500 Subject: [PATCH] noot --- .gitignore | 1 + cmd/lain/main.go | 4 +++- plugins/auth/auth.go | 2 +- {pkg => plugins/caps}/ircmw/cap.go | 0 plugins/useful/pong.go | 19 +++++++++++++++++++ 5 files changed, 24 insertions(+), 2 deletions(-) rename {pkg => plugins/caps}/ircmw/cap.go (100%) create mode 100644 plugins/useful/pong.go diff --git a/.gitignore b/.gitignore index 4c49bd7..e58e5a2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .env +.idea diff --git a/cmd/lain/main.go b/cmd/lain/main.go index 2377ff7..eb11aba 100644 --- a/cmd/lain/main.go +++ b/cmd/lain/main.go @@ -7,12 +7,13 @@ import ( "os" "time" + "tuxpa.in/a/irc/plugins/caps/ircmw" + _ "github.com/joho/godotenv/autoload" "github.com/lmittmann/tint" "go.uber.org/fx" "go.uber.org/fx/fxevent" "tuxpa.in/a/irc/pkg/ircconn" - "tuxpa.in/a/irc/pkg/ircmw" "tuxpa.in/a/irc/pkg/ircv3" "tuxpa.in/a/irc/plugins/auth" "tuxpa.in/a/irc/plugins/useful" @@ -49,6 +50,7 @@ func exec(log *slog.Logger) error { (&auth.User{Username: "lain", Realname: "lain a", Hostname: "wired", Server: "wired"}).Middleware, ircmw.CapabilityServerTime, (&useful.Autojoin{Channels: []string{"#lainmaxxing"}}).Middleware, + (&useful.Pong{}).Middleware, ).Handler(ircv3.HandlerFunc(func(ctx context.Context, w ircv3.MessageWriter, m *ircv3.Message) { })) diff --git a/plugins/auth/auth.go b/plugins/auth/auth.go index 656fad3..b1cb94f 100644 --- a/plugins/auth/auth.go +++ b/plugins/auth/auth.go @@ -3,8 +3,8 @@ package auth import ( "context" "encoding/base64" + "tuxpa.in/a/irc/plugins/caps/ircmw" - "tuxpa.in/a/irc/pkg/ircmw" "tuxpa.in/a/irc/pkg/ircv3" ) diff --git a/pkg/ircmw/cap.go b/plugins/caps/ircmw/cap.go similarity index 100% rename from pkg/ircmw/cap.go rename to plugins/caps/ircmw/cap.go diff --git a/plugins/useful/pong.go b/plugins/useful/pong.go new file mode 100644 index 0000000..7385676 --- /dev/null +++ b/plugins/useful/pong.go @@ -0,0 +1,19 @@ +package useful + +import ( + "context" + + "tuxpa.in/a/irc/pkg/ircv3" +) + +type Pong struct { +} + +func (u *Pong) Middleware(next ircv3.Handler) ircv3.Handler { + return ircv3.HandlerFunc(func(ctx context.Context, w ircv3.MessageWriter, m *ircv3.Message) { + if m.Command == "PING" { + w.WriteMessage(ircv3.NewMessage("PONG", m.Param(0))) + } + next.Handle(ctx, w, m) + }) +}