refactoring, fixes and laniakea v0.8
This commit is contained in:
@@ -4,28 +4,29 @@ import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"kurumibot/database/mdb"
|
||||
"kurumibot/utils"
|
||||
"strings"
|
||||
"time"
|
||||
"ymgb/database"
|
||||
"ymgb/database/mdb"
|
||||
"ymgb/utils"
|
||||
|
||||
"git.nix13.pw/scuroneko/extypes"
|
||||
"git.nix13.pw/scuroneko/laniakea"
|
||||
"git.nix13.pw/scuroneko/slog"
|
||||
)
|
||||
|
||||
func RegisterLogs(bot *laniakea.Bot) {
|
||||
p := laniakea.NewPlugin("Logs")
|
||||
func RegisterLogs() *laniakea.Plugin[database.Context] {
|
||||
p := laniakea.NewPlugin[database.Context]("Logs")
|
||||
p.AddCommand(p.NewCommand(getLogs, "logs").SkipCommandAutoGen())
|
||||
p.AddCommand(p.NewCommand(getMsgLogs, "msglogs").SkipCommandAutoGen())
|
||||
p.AddMiddleware(AdminMiddleware())
|
||||
bot.AddPlugins(p)
|
||||
return p
|
||||
}
|
||||
func InitLogMiddleware() laniakea.Middleware {
|
||||
func InitLogMiddleware() laniakea.Middleware[database.Context] {
|
||||
return *laniakea.NewMiddleware("LogMiddleware", logMiddleware).SetAsync(true)
|
||||
}
|
||||
|
||||
func getLogs(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func getLogs(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
logs, err := mdb.GetConsoleLogs(db)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
@@ -34,7 +35,7 @@ func getLogs(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
out := encodeLogs(logs)
|
||||
ctx.Answer(strings.Join(out, ""))
|
||||
}
|
||||
func getMsgLogs(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func getMsgLogs(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
logs, err := mdb.GetMessageLogs(db)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
@@ -61,7 +62,7 @@ func encodeLogs[T comparable](logs extypes.Slice[T]) extypes.Slice[string] {
|
||||
return out
|
||||
}
|
||||
|
||||
func logMiddleware(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) bool {
|
||||
func logMiddleware(ctx *laniakea.MsgContext, db *database.Context) bool {
|
||||
if ctx.Msg == nil {
|
||||
return true
|
||||
}
|
||||
@@ -70,18 +71,18 @@ func logMiddleware(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) bool
|
||||
SenderID: ctx.FromID,
|
||||
ChatID: ctx.Msg.Chat.ID,
|
||||
Text: ctx.Msg.Text,
|
||||
TimeStamp: time.Now().Unix(),
|
||||
TimeStamp: int64(ctx.Msg.Date),
|
||||
}
|
||||
err := mdb.WriteMessageLog(db, entry)
|
||||
if err != nil {
|
||||
ctx.Bot.Logger().Errorln(err)
|
||||
ctx.Error(err)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
type DatabaseWriter struct {
|
||||
slog.LoggerWriter
|
||||
db *laniakea.DatabaseContext
|
||||
db *database.Context
|
||||
}
|
||||
|
||||
func (w *DatabaseWriter) Print(level slog.LogLevel, prefix string, traceback []*slog.MethodTraceback, messages ...any) error {
|
||||
@@ -102,6 +103,6 @@ func (w *DatabaseWriter) Print(level slog.LogLevel, prefix string, traceback []*
|
||||
err := mdb.WriteConsoleLog(w.db, entry)
|
||||
return err
|
||||
}
|
||||
func DatabaseLogger(db *laniakea.DatabaseContext) slog.LoggerWriter {
|
||||
func DatabaseLogger(db *database.Context) slog.LoggerWriter {
|
||||
return &DatabaseWriter{db: db}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user