refactoring, fixes and laniakea v0.8

This commit is contained in:
2026-02-19 14:02:25 +03:00
parent 0804398b6c
commit c9a5a81643
30 changed files with 219 additions and 190 deletions

View File

@@ -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}
}