Update deps, update config of golangci-lint, fix some golangci-lint warnings
This commit is contained in:
@@ -20,7 +20,7 @@ const (
|
||||
)
|
||||
|
||||
// Выдаёт "очки похожести" для данной фразы.
|
||||
func checkPhrase(s string) error {
|
||||
func checkPhrase(s string) error { //nolint: unused
|
||||
classifier, err := bayesian.NewClassifierFromFile(dataFile)
|
||||
|
||||
if err != nil {
|
||||
@@ -37,7 +37,7 @@ func checkPhrase(s string) error {
|
||||
}
|
||||
|
||||
// Выучивает слова из предопределённых словарей.
|
||||
func learn() error {
|
||||
func learn() error { //nolint: unused
|
||||
classifier := bayesian.NewClassifier(Bad, Good)
|
||||
|
||||
if err := feed(classifier, goodDictionaryFile, Good); err != nil {
|
||||
@@ -56,7 +56,7 @@ func learn() error {
|
||||
}
|
||||
|
||||
// Дополняет заданный класс фразами из указанного файла.
|
||||
func feed(c *bayesian.Classifier, filename string, bc bayesian.Class) error {
|
||||
func feed(c *bayesian.Classifier, filename string, bc bayesian.Class) error { //nolint:unused
|
||||
fh, err := os.Open(filename)
|
||||
|
||||
if err != nil {
|
||||
@@ -98,3 +98,5 @@ func feed(c *bayesian.Classifier, filename string, bc bayesian.Class) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
/* vim: set ft=go noet ai ts=4 sw=4 sts=4: */
|
||||
|
||||
@@ -202,3 +202,5 @@ func (j *Jabber) ReadBlacklist() error {
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
/* vim: set ft=go noet ai ts=4 sw=4 sts=4: */
|
||||
|
||||
@@ -208,3 +208,5 @@ func (j *Jabber) Cmd(v xmpp.Chat) error {
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
/* vim: set ft=go noet ai ts=4 sw=4 sts=4: */
|
||||
|
||||
@@ -108,7 +108,7 @@ func (j *Jabber) ParseEvent(e interface{}) { //nolint:maintidx,gocognit,gocyclo
|
||||
}
|
||||
|
||||
var (
|
||||
iqStruct JabberSimpleIqGetQuery
|
||||
iqStruct SimpleIqGetQuery
|
||||
parseError bool
|
||||
)
|
||||
|
||||
@@ -244,7 +244,7 @@ func (j *Jabber) ParseEvent(e interface{}) { //nolint:maintidx,gocognit,gocyclo
|
||||
|
||||
// Попробуем распарсить входящий запрос как urn:xmpp:time
|
||||
if parseError {
|
||||
var iqStruct JabberTimeIqGetQuery
|
||||
var iqStruct TimeIqGetQuery
|
||||
|
||||
if err := xml.Unmarshal(v.Query, &iqStruct); err == nil {
|
||||
switch iqStruct.Xmlns {
|
||||
@@ -278,7 +278,7 @@ func (j *Jabber) ParseEvent(e interface{}) { //nolint:maintidx,gocognit,gocyclo
|
||||
|
||||
// Попробуем распарсить входящий запрос как http://jabber.org/protocol/pubsub
|
||||
if parseError {
|
||||
var iqStruct JabberPubsubIQGetQuery
|
||||
var iqStruct PubsubIQGetQuery
|
||||
|
||||
if err := xml.Unmarshal(v.Query, &iqStruct); err == nil {
|
||||
switch iqStruct.Xmlns {
|
||||
@@ -316,7 +316,7 @@ func (j *Jabber) ParseEvent(e interface{}) { //nolint:maintidx,gocognit,gocyclo
|
||||
// Предполагается, что такие респонсы должны приходить только для пинга без серверной оптимизации.
|
||||
// Хотя идейно мы не поддерживаем работу без серверной оптимизации, но на пинг ответим, нам несложно.
|
||||
if parseError {
|
||||
var iqStruct JabberIqPing
|
||||
var iqStruct IqPing
|
||||
|
||||
if err := xml.Unmarshal(v.Query, &iqStruct); err == nil {
|
||||
log.Debugf("Got IQ get request (actually, response) for MUC Self-Ping from %s", v.From)
|
||||
@@ -377,8 +377,8 @@ func (j *Jabber) ParseEvent(e interface{}) { //nolint:maintidx,gocognit,gocyclo
|
||||
|
||||
if mucNickMatch {
|
||||
log.Debugf("Got 2-nd stage MUC pong answer (xep-0410) from %s to %s", v.From, v.To)
|
||||
// Поскольку никакой логики у нас на этот счёт не предусмотрено, то просто пропускаем ответ
|
||||
} else {
|
||||
// Поскольку никакой логики у нас на этот счёт не предусмотрено, то просто пропускаем ответ
|
||||
log.Infof("Got unknown pong from %s to %s", v.From, v.To)
|
||||
log.Debug(spew.Sdump(e))
|
||||
}
|
||||
@@ -405,11 +405,10 @@ func (j *Jabber) ParseEvent(e interface{}) { //nolint:maintidx,gocognit,gocyclo
|
||||
// Формально, ответ должен парситься как пустой result и совпадать с типом jabberSimpleIqGetQuery
|
||||
// Ответ приходит с 2 xmlns, похоже, он парсится неправильно в go-xmpp.
|
||||
// TODO: после исправления go-xmpp, надо исправить это тут
|
||||
var iqStruct JabberSimpleIqGetQuery
|
||||
var iqStruct SimpleIqGetQuery
|
||||
|
||||
if err := xml.Unmarshal(v.Query, &iqStruct); err == nil {
|
||||
if iqStruct.Xmlns == "http://jabber.org/protocol/muc#admin" && iqStruct.Text == "" {
|
||||
|
||||
if mucNickMatch {
|
||||
// Поскольку никакой логики у нас на этот счёт не предусмотрено, то просто пропускаем ответ
|
||||
log.Infof("Got ban successful from %s to %s", v.From, v.To)
|
||||
@@ -464,7 +463,7 @@ func (j *Jabber) ParseEvent(e interface{}) { //nolint:maintidx,gocognit,gocyclo
|
||||
// Если сервер не хочет пинговаться и отвечает ошибкой на пинг, то наверно он не умеет в пинги,
|
||||
// хотя если мы его пингуем, значит он анонсировал такой capability. Вот, засранец!
|
||||
var (
|
||||
iqPingStruct JabberIqPing
|
||||
iqPingStruct IqPing
|
||||
parseError = true
|
||||
)
|
||||
|
||||
@@ -489,7 +488,7 @@ func (j *Jabber) ParseEvent(e interface{}) { //nolint:maintidx,gocognit,gocyclo
|
||||
|
||||
// Это у нас пинг xep-0410 и мы не в комнате, предполагается, что надо бы заджойниться
|
||||
if parseError {
|
||||
var iqErrorCancelNotAcceptable JabberIqErrorCancelNotAcceptable
|
||||
var iqErrorCancelNotAcceptable IqErrorCancelNotAcceptable
|
||||
|
||||
if err := xml.Unmarshal(v.Query, &iqErrorCancelNotAcceptable); err == nil {
|
||||
if v.To == j.Talk.JID() {
|
||||
@@ -498,7 +497,6 @@ func (j *Jabber) ParseEvent(e interface{}) { //nolint:maintidx,gocognit,gocyclo
|
||||
|
||||
if slices.Contains(j.RoomsConnected, iqErrorCancelNotAcceptable.By) &&
|
||||
nick == j.GetBotNickFromRoomConfig(room) {
|
||||
|
||||
log.Errorf(
|
||||
"Got Iq error message from: %s to: %s. Looks like i'm not in MUC anymore",
|
||||
v.From, v.To,
|
||||
@@ -571,7 +569,7 @@ func (j *Jabber) ParseEvent(e interface{}) { //nolint:maintidx,gocognit,gocyclo
|
||||
} else {
|
||||
log.Errorf("Presence notification, Type: %s, From: %s, Show: %s, Status: %s",
|
||||
v.Type, v.From, v.Show, v.Status)
|
||||
log.Errorf(spew.Sdump(v))
|
||||
log.Error(spew.Sdump(v))
|
||||
}
|
||||
} else {
|
||||
log.Infof(
|
||||
|
||||
@@ -37,6 +37,7 @@ func (j *Jabber) MyLoop() error {
|
||||
func() error {
|
||||
err := j.ProbeServerLiveness()
|
||||
log.Error(err)
|
||||
|
||||
return err
|
||||
},
|
||||
)
|
||||
|
||||
@@ -44,7 +44,7 @@ func nString(buf string) string {
|
||||
}
|
||||
|
||||
// Обёртка для nString, возвращает нормализованную строку в нижнем регистре.
|
||||
func nStringLower(buf string) string {
|
||||
func nStringLower(buf string) string { //nolint:unused
|
||||
return strings.ToLower(nString(buf))
|
||||
}
|
||||
|
||||
|
||||
@@ -58,3 +58,5 @@ func (j *Jabber) SigHandler() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
/* vim: set ft=go noet ai ts=4 sw=4 sts=4: */
|
||||
|
||||
@@ -76,3 +76,5 @@ func (j *Jabber) Squash(room, jid string, reasonEnable bool, vType string) (stri
|
||||
|
||||
return id, err
|
||||
}
|
||||
|
||||
/* vim: set ft=go noet ai ts=4 sw=4 sts=4: */
|
||||
|
||||
@@ -145,17 +145,17 @@ type Jabber struct {
|
||||
Connecting bool
|
||||
}
|
||||
|
||||
// JabberSimpleIqGetQuery прототип структурки для разбора запросов xmpp discovery query, например,
|
||||
// SimpleIqGetQuery прототип структурки для разбора запросов xmpp discovery query, например,
|
||||
// https://xmpp.org/extensions/xep-0030.html#example-18 .
|
||||
type JabberSimpleIqGetQuery struct {
|
||||
type SimpleIqGetQuery struct {
|
||||
XMLName xml.Name `xml:"query"`
|
||||
Text string `xml:",chardata"`
|
||||
Xmlns string `xml:"xmlns,attr"`
|
||||
Node string `xml:"node,attr,omitempty"` // для xmlns="http://jabber.org/protocol/disco#items"
|
||||
}
|
||||
|
||||
// JabberPubsubIQGetQuery прототип структурки для разбора запросов xmpp pubsub.
|
||||
type JabberPubsubIQGetQuery struct {
|
||||
// PubsubIQGetQuery прототип структурки для разбора запросов xmpp pubsub.
|
||||
type PubsubIQGetQuery struct {
|
||||
XMLName xml.Name `xml:"pubsub"`
|
||||
Text string `xml:",chardata"`
|
||||
Xmlns string `xml:"xmlns,attr"`
|
||||
@@ -166,25 +166,25 @@ type JabberPubsubIQGetQuery struct {
|
||||
} `xml:"items"`
|
||||
}
|
||||
|
||||
// JabberTimeIqGetQuery прототип структурки для разбора IQ запросов на локальное время клиента,
|
||||
// TimeIqGetQuery прототип структурки для разбора IQ запросов на локальное время клиента,
|
||||
// https://xmpp.org/extensions/xep-0202.html
|
||||
type JabberTimeIqGetQuery struct {
|
||||
type TimeIqGetQuery struct {
|
||||
// <time xmlns="urn:xmpp:time"/>
|
||||
XMLName xml.Name `xml:"time"`
|
||||
Text string `xml:",chardata"`
|
||||
Xmlns string `xml:"xmlns,attr"`
|
||||
}
|
||||
|
||||
// JabberIqPing прототип структурки для разбора IQ запросов на пинг клиента, https://xmpp.org/extensions/xep-0199.html
|
||||
type JabberIqPing struct {
|
||||
// IqPing прототип структурки для разбора IQ запросов на пинг клиента, https://xmpp.org/extensions/xep-0199.html
|
||||
type IqPing struct {
|
||||
XMLName xml.Name `xml:"ping"`
|
||||
Text string `xml:",chardata"`
|
||||
Xmlns string `xml:"xmlns,attr"`
|
||||
}
|
||||
|
||||
// JabberIqErrorCancelNotAcceptable прототип структурки для разбора IQ ответов, когда сервис (сервер, клиент, etc) не
|
||||
// IqErrorCancelNotAcceptable прототип структурки для разбора IQ ответов, когда сервис (сервер, клиент, etc) не
|
||||
// может или не хочет принимать наш iq-запрос https://xmpp.org/extensions/xep-0099.html
|
||||
type JabberIqErrorCancelNotAcceptable struct {
|
||||
type IqErrorCancelNotAcceptable struct {
|
||||
XMLName xml.Name `xml:"error"`
|
||||
Text string `xml:",chardata"`
|
||||
Type string `xml:"type,attr"`
|
||||
|
||||
@@ -107,7 +107,7 @@ func (j *Jabber) RotateStatus(room string) error {
|
||||
}
|
||||
|
||||
if _, err := j.Talk.SendPresence(p); err != nil {
|
||||
return fmt.Errorf("Unable to send presence to MUC %s: %s", room, err)
|
||||
return fmt.Errorf("unable to send presence to MUC %s: %w", room, err)
|
||||
}
|
||||
|
||||
// Если мы не хотим ротировать, то цикл нам тут не нужен, просто выходим.
|
||||
@@ -125,7 +125,7 @@ func (j *Jabber) JoinMuc(room string) error {
|
||||
log.Debugf("Sending disco#info from %s to %s", j.Talk.JID(), room)
|
||||
|
||||
if _, err := j.Talk.DiscoverInfo(j.Talk.JID(), room); err != nil {
|
||||
return fmt.Errorf("Unable to send disco#info to MUC %s: %s", room, err)
|
||||
return fmt.Errorf("unable to send disco#info to MUC %s: %w", room, err)
|
||||
}
|
||||
|
||||
// Ждём, пока muc нам вернёт список фичей.
|
||||
@@ -156,7 +156,7 @@ func (j *Jabber) JoinMuc(room string) error {
|
||||
|
||||
// Заходим в конфу, наконец-то
|
||||
if _, err := j.Talk.JoinMUCNoHistory(room, j.GetBotNickFromRoomConfig(room)); err != nil {
|
||||
return fmt.Errorf("Unable to join to MUC: %s, %w", room, err)
|
||||
return fmt.Errorf("unable to join to MUC: %s, %w", room, err)
|
||||
}
|
||||
|
||||
log.Infof("Joining to MUC: %s", room)
|
||||
@@ -224,12 +224,12 @@ func (j *Jabber) EstablishConnection() error {
|
||||
j.Talk, err = j.Options.NewClient()
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("Unable to connect to %s: %w", j.Options.Host, err)
|
||||
return fmt.Errorf("unable to connect to %s: %w", j.Options.Host, err)
|
||||
}
|
||||
|
||||
// По идее keepalive должен же проходить только, если мы уже на сервере, так?
|
||||
if _, err := j.Talk.SendKeepAlive(); err != nil {
|
||||
return fmt.Errorf("Try to send initial KeepAlive, got error: %w", err)
|
||||
return fmt.Errorf("try to send initial KeepAlive, got error: %w", err)
|
||||
}
|
||||
|
||||
log.Info("Connected")
|
||||
@@ -237,6 +237,7 @@ func (j *Jabber) EstablishConnection() error {
|
||||
// Джойнимся к чятикам, но делаем это в фоне, чтобы не блочиться на ошибках, например, если бота забанили
|
||||
for _, roomStruct := range j.C.Jabber.Channels {
|
||||
room := roomStruct.Name
|
||||
|
||||
j.GTomb.Go(func() error { return j.JoinMuc(room) })
|
||||
}
|
||||
|
||||
@@ -251,7 +252,7 @@ func (j *Jabber) EstablishConnection() error {
|
||||
_, err = j.Talk.DiscoverInfo(j.Talk.JID(), j.C.Jabber.Server)
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("Unable to send disco#info to jabber server: %s", err)
|
||||
return fmt.Errorf("unable to send disco#info to jabber server: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -409,6 +410,7 @@ func (j *Jabber) ProbeMUCLiveness() { //nolint:gocognit
|
||||
|
||||
if e := j.Talk.PingS2S(j.Talk.JID(), room); e != nil {
|
||||
err = fmt.Errorf("unable to ping MUC %s: %w", room, e)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user