More linter fixes, disable gci linter as it conflicts with goimports
This commit is contained in:
@@ -72,7 +72,6 @@ linters:
|
|||||||
- examples$
|
- examples$
|
||||||
formatters:
|
formatters:
|
||||||
enable:
|
enable:
|
||||||
- gci
|
|
||||||
- gofmt
|
- gofmt
|
||||||
- goimports
|
- goimports
|
||||||
exclusions:
|
exclusions:
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"aleesa-irc-go/internal/boolcollection"
|
||||||
|
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
irc "github.com/thoj/go-ircevent"
|
irc "github.com/thoj/go-ircevent"
|
||||||
)
|
)
|
||||||
@@ -56,18 +58,25 @@ func ircClientRun() {
|
|||||||
e.Connection.Lock()
|
e.Connection.Lock()
|
||||||
|
|
||||||
// Формат строки с MODE-ами https://datatracker.ietf.org/doc/html/rfc2812#section-5.1 .
|
// Формат строки с MODE-ами https://datatracker.ietf.org/doc/html/rfc2812#section-5.1 .
|
||||||
|
availableUserModes = boolcollection.NewCollection()
|
||||||
|
availableChanModes = boolcollection.NewCollection()
|
||||||
|
|
||||||
log.Debugf("Add %s to list of available user modes", e.Arguments[3])
|
log.Debugf("Add %s to list of available user modes", e.Arguments[3])
|
||||||
|
|
||||||
for _, mode := range strings.Split(e.Arguments[3], "") {
|
for _, mode := range strings.Split(e.Arguments[3], "") {
|
||||||
availableUserModes.Set(mode, true)
|
availableUserModes.Set(mode, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
availableUserModes.Set("announced", true)
|
||||||
|
|
||||||
log.Debugf("Add %s to list available channel modes", e.Arguments[4])
|
log.Debugf("Add %s to list available channel modes", e.Arguments[4])
|
||||||
|
|
||||||
for _, mode := range strings.Split(e.Arguments[4], "") {
|
for _, mode := range strings.Split(e.Arguments[4], "") {
|
||||||
availableChanModes.Set(mode, true)
|
availableChanModes.Set(mode, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
availableChanModes.Set("announced", true)
|
||||||
|
|
||||||
e.Connection.Unlock()
|
e.Connection.Unlock()
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -157,17 +166,19 @@ func ircClientRun() {
|
|||||||
log.Debugf("376 RPL_ENDOFMOTD %s", e.Raw)
|
log.Debugf("376 RPL_ENDOFMOTD %s", e.Raw)
|
||||||
|
|
||||||
// Если у нас есть доступный +B возьмём его себе, мы же бот.
|
// Если у нас есть доступный +B возьмём его себе, мы же бот.
|
||||||
botFlag, ok := availableUserModes.Get("B")
|
announced, _ := availableUserModes.Get("announced")
|
||||||
|
botFlag, _ := availableUserModes.Get("B")
|
||||||
|
|
||||||
if ok && botFlag {
|
if announced {
|
||||||
log.Info("Grabbing +B flag to mark me as bot")
|
if botFlag {
|
||||||
ircClient.Mode(ircClient.GetNick(), "+B")
|
log.Info("Grabbing +B flag to mark me as bot")
|
||||||
} else {
|
ircClient.Mode(ircClient.GetNick(), "+B")
|
||||||
if ok {
|
|
||||||
log.Info("Skip +B flag, server does not support it, noone will know that I am bot")
|
|
||||||
} else {
|
} else {
|
||||||
log.Info("Skip +B flag, server did not announce modes (yet?), noone will know that I am bot")
|
log.Info("Skip +B flag, server does not support it, noone will know that I am bot")
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// Этого по идее не должно быть.
|
||||||
|
log.Info("Skip +B flag, server did not announce modes (yet?), noone will know that I am bot")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !config.Irc.Sasl && config.Irc.Password != "" && !nickIsUsed {
|
if !config.Irc.Sasl && config.Irc.Password != "" && !nickIsUsed {
|
||||||
@@ -438,7 +449,7 @@ func ircClientRun() {
|
|||||||
log.Infof("%s renames themself to %s", srcNick, dstNick)
|
log.Infof("%s renames themself to %s", srcNick, dstNick)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Неважно чей ник сменился, надо забыть, что было и снова узнать mode-ы сменишего nick джентельмена
|
// Неважно чей ник сменился, надо забыть, что было и снова узнать mode-ы сменишего nick джентельмена.
|
||||||
// TODO: реализовать userModeRenameUser()
|
// TODO: реализовать userModeRenameUser()
|
||||||
userModePurgeUser(srcNick)
|
userModePurgeUser(srcNick)
|
||||||
ircClient.Whois(dstNick)
|
ircClient.Whois(dstNick)
|
||||||
@@ -450,12 +461,12 @@ func ircClientRun() {
|
|||||||
channel := e.Arguments[0]
|
channel := e.Arguments[0]
|
||||||
|
|
||||||
if nick == ircClient.GetNick() {
|
if nick == ircClient.GetNick() {
|
||||||
|
// Команда names отправляется автоматом.
|
||||||
log.Infof("I joined to %s", channel)
|
log.Infof("I joined to %s", channel)
|
||||||
// Команда names отправляется автоматом
|
|
||||||
} else {
|
} else {
|
||||||
log.Infof("%s joined to %s", fullNick, channel)
|
log.Infof("%s joined to %s", fullNick, channel)
|
||||||
// Технически, тут не надо спрашивать whois на пользователя, но мы спрашиваем, чтобы уточнить mode,
|
// Технически, тут не надо спрашивать whois на пользователя, но мы спрашиваем, чтобы уточнить mode,
|
||||||
// вдруг сервер проставляет mode заранее (хотя не должен)
|
// вдруг сервер проставляет mode заранее (хотя не должен).
|
||||||
ircClient.Whois(nick)
|
ircClient.Whois(nick)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
|
|
||||||
"aleesa-irc-go/internal/anycollection"
|
"aleesa-irc-go/internal/anycollection"
|
||||||
"aleesa-irc-go/internal/boolcollection"
|
"aleesa-irc-go/internal/boolcollection"
|
||||||
|
|
||||||
"github.com/cockroachdb/pebble"
|
"github.com/cockroachdb/pebble"
|
||||||
"github.com/go-redis/redis/v8"
|
"github.com/go-redis/redis/v8"
|
||||||
irc "github.com/thoj/go-ircevent"
|
irc "github.com/thoj/go-ircevent"
|
||||||
|
|||||||
Reference in New Issue
Block a user