Partially fix poezio/poezio#3452. Prevent groupchat_subject
from triggered sent when body or thread are in the message.
0045 says: > The subject is changed by sending a message of type "groupchat" to the > <room@service>, where the <message/> MUST contain a <subject/> element that > specifies the new subject but MUST NOT contain a <body/> element (or a > <thread/> element). In accordance with the core definition of XMPP, other child > elements are allowed (although the entity that receives them might ignore > them). > > Note: A message with a <subject/> and a <body/> or a <subject/> and a <thread/> > is a legitimate message, but it SHALL NOT be interpreted as a subject change. Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
This commit is contained in:
parent
5629e44710
commit
2dda6b80d4
@ -9,7 +9,7 @@ from __future__ import with_statement
|
||||
|
||||
import logging
|
||||
|
||||
from slixmpp import Presence
|
||||
from slixmpp import Presence, Message
|
||||
from slixmpp.plugins import BasePlugin, register_plugin
|
||||
from slixmpp.xmlstream import register_stanza_plugin, ElementBase, JID, ET
|
||||
from slixmpp.xmlstream.handler.callback import Callback
|
||||
@ -181,7 +181,7 @@ class XEP_0045(BasePlugin):
|
||||
if got_online:
|
||||
self.xmpp.event("muc::%s::got_online" % entry['room'], pr)
|
||||
|
||||
def handle_groupchat_message(self, msg):
|
||||
def handle_groupchat_message(self, msg: Message) -> None:
|
||||
""" Handle a message event in a muc.
|
||||
"""
|
||||
self.xmpp.event('groupchat_message', msg)
|
||||
@ -195,10 +195,14 @@ class XEP_0045(BasePlugin):
|
||||
|
||||
|
||||
|
||||
def handle_groupchat_subject(self, msg):
|
||||
def handle_groupchat_subject(self, msg: Message) -> None:
|
||||
""" Handle a message coming from a muc indicating
|
||||
a change of subject (or announcing it when joining the room)
|
||||
"""
|
||||
# See poezio#3452. A message containing subject _and_ (body or thread)
|
||||
# is not a subject change.
|
||||
if msg['body'] or msg['thread']:
|
||||
return None
|
||||
self.xmpp.event('groupchat_subject', msg)
|
||||
|
||||
def jid_in_room(self, room, jid):
|
||||
|
Loading…
Reference in New Issue
Block a user