diff --git a/buny.go b/buny.go index ff93343..95d5e01 100644 --- a/buny.go +++ b/buny.go @@ -356,9 +356,11 @@ func squash(room, jid string, reasonEnable bool, vType string) (string, error) { ban += "" - // Выжидаем 0.3 секунды перед баном. А то можно настолько рано забанить, что сервер не внсёт злодея в банлист - // комнаты и пришлёт affiliation: none вместо affiliation: outcast. Надеюсь, этого будет хватать. - time.Sleep(333 * time.Millisecond) + // Выжидаем некоторое время перед баном. А то можно настолько рано забанить, что сервер не внесёт злодея в банлист + // комнаты и пришлёт affiliation: none вместо affiliation: outcast. + if config.Jabber.BanDelay > 0 { + time.Sleep(time.Duration(config.Jabber.BanDelay) * time.Millisecond) + } if id, err = talk.RawInformationQuery( talk.JID(), diff --git a/data/sample_config.json b/data/sample_config.json index cadb73f..2069619 100644 --- a/data/sample_config.json +++ b/data/sample_config.json @@ -106,6 +106,10 @@ "rotation_splay_time": 345600 }, + # Задержка перед баном, миллисекунды. Иногда сервер может подтормаживать на моменте бана. Jabber.ru так делает. + # В этом случае бан не записывается в банлист комнаты. + "ban_delay": 600, + # Произносим ли что-то пафосное в момоент бана "ban_phrases_enable": false, diff --git a/lib.go b/lib.go index 22e9858..279b7b5 100644 --- a/lib.go +++ b/lib.go @@ -257,6 +257,7 @@ func readConfig() error { //nolint:gocognit,gocyclo // Если sampleConfig.Jabber.RuntimeStatus.RotationTime не задан, то он равен 0 // Если sampleConfig.Jabber.RuntimeStatus.RotationSplayTime не задан, то он равен 0 + // Если sampleConfig.Jabber.BanDelay не задан, то он равен 0 // Если sampleConfig.Jabber.BanPhrasesEnable не задан, то он false // Если список фраз, с которыми банят пустой, то вносим в него одну позицию с пустой строкой diff --git a/types.go b/types.go index cf781cf..5ecedb1 100644 --- a/types.go +++ b/types.go @@ -31,6 +31,7 @@ type myConfig struct { RotationTime int64 `json:"rotation_time,omitempty"` RotationSplayTime int64 `json:"rotation_splay_time,omitempty"` } `json:"runtime_status,omitempty"` + BanDelay int64 `json:"ban_delay,omitempty"` BanPhrasesEnable bool `json:"ban_phrases_enable,omitempty"` BanPhrases []string `json:"ban_phrases,omitempty"` } `json:"jabber,omitempty"`