[WIP] Fix ban by software version, some other under-hood changes

- Use updated version of upstream go-xmpp + fixes on client-side
- Introduce golangci-lint v2 + fixes
- Move especially noisy debugging stuff to separate config handles to be able to switch them off
- Add a bit debug to ban by software path
This commit is contained in:
eleksir
2025-11-30 14:19:01 +03:00
parent a128b473ff
commit 3d85dbcb58
55 changed files with 4165 additions and 13190 deletions

View File

@@ -15,7 +15,7 @@ import (
"buny-jabber-bot/internal/jabber"
"buny-jabber-bot/internal/log"
"github.com/eleksir/go-xmpp"
"github.com/xmppo/go-xmpp"
"gopkg.in/tomb.v2"
)
@@ -81,7 +81,9 @@ func main() {
verboseClient := false
if log.LogLevel == slog.LevelDebug {
verboseClient = true
if j.C.Debug.Lib {
verboseClient = true
}
}
// Самое время вгрузить белые и чёрные списки, если что - получим ошибку в лог.
@@ -97,9 +99,6 @@ func main() {
os.Exit(1)
}
// github.com/mattn/go-xmpp пишет в stdio, нам этого не надо, ловим выхлоп его в logrus с уровнем trace.
xmpp.DebugWriter = log.Writer
// Хэндлер сигналов.
j.GTomb.Go(func() error { return j.SigHandler() }) //nolint: gocritic
@@ -122,6 +121,12 @@ func main() {
Status: "xa",
StatusMessage: jabber.RandomPhrase(j.C.Jabber.StartupStatus),
DialTimeout: time.Duration(j.C.Jabber.ConnectionTimeout) * time.Second,
DebugWriter: log.Writer,
PeriodicServerPings: false,
ReportSoftwareVersion: true,
SoftwareName: "Buny Jabber Bot",
SoftwareVersion: version,
ReportSoftwareOS: true,
}
// Враппер основной программы. Фактически на каждой серьёзной ошибке, например, сетевой, mainLoop и некоторые