Properly detect ban event source (wether we are in src room or not)
This commit is contained in:
@@ -386,10 +386,14 @@ func parseEvent(e interface{}) { //nolint:maintidx,gocognit,gocyclo
|
|||||||
case v.To == talk.JID() && v.ID == "ban1":
|
case v.To == talk.JID() && v.ID == "ban1":
|
||||||
mucNickMatch := false
|
mucNickMatch := false
|
||||||
|
|
||||||
|
// Если ник, которому предназначается сообщение, совпадает с ником, из конфига бота (глобального или для
|
||||||
|
// комнаты), то считаем, что мы есть в этой комнате. Потому что в противном случае в roomsConnected не
|
||||||
|
// будет искомой комнаты и мы не сможем составить ник бота, чтобы сравнить его с тем, кому адресовано
|
||||||
|
// уведомление.
|
||||||
for _, room := range roomsConnected {
|
for _, room := range roomsConnected {
|
||||||
mucNick := fmt.Sprintf("%s/%s", room, getBotNickFromRoomConfig(room))
|
mucNick := fmt.Sprintf("%s/%s", room, getBotNickFromRoomConfig(room))
|
||||||
|
|
||||||
if v.From == mucNick {
|
if v.To == mucNick {
|
||||||
mucNickMatch = true
|
mucNickMatch = true
|
||||||
|
|
||||||
break
|
break
|
||||||
@@ -403,6 +407,7 @@ func parseEvent(e interface{}) { //nolint:maintidx,gocognit,gocyclo
|
|||||||
|
|
||||||
if err := xml.Unmarshal(v.Query, &iqStruct); err == nil {
|
if err := xml.Unmarshal(v.Query, &iqStruct); err == nil {
|
||||||
if iqStruct.Xmlns == "http://jabber.org/protocol/muc#admin" && iqStruct.Text == "" {
|
if iqStruct.Xmlns == "http://jabber.org/protocol/muc#admin" && iqStruct.Text == "" {
|
||||||
|
|
||||||
if mucNickMatch {
|
if mucNickMatch {
|
||||||
// Поскольку никакой логики у нас на этот счёт не предусмотрено, то просто пропускаем ответ
|
// Поскольку никакой логики у нас на этот счёт не предусмотрено, то просто пропускаем ответ
|
||||||
log.Infof("Got ban successful from %s to %s", v.From, v.To)
|
log.Infof("Got ban successful from %s to %s", v.From, v.To)
|
||||||
|
|||||||
Reference in New Issue
Block a user