diff options
author | mathieui <mathieui@mathieui.net> | 2021-03-09 19:15:27 +0100 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2021-03-09 19:52:53 +0100 |
commit | e329eadbedf3dada89f3e7fd5e2bf5d24e995f27 (patch) | |
tree | d64922d39f462963478a10fa6aabbb68a8e71a93 /slixmpp/plugins/xep_0313/stanza.py | |
parent | 4cdcc4d155d1bd11afb6366f2b5efa1739788d01 (diff) | |
download | slixmpp-e329eadbedf3dada89f3e7fd5e2bf5d24e995f27.tar.gz slixmpp-e329eadbedf3dada89f3e7fd5e2bf5d24e995f27.tar.bz2 slixmpp-e329eadbedf3dada89f3e7fd5e2bf5d24e995f27.tar.xz slixmpp-e329eadbedf3dada89f3e7fd5e2bf5d24e995f27.zip |
XEP-0313: Fix off-by-one-page RSM fetching
Add a "results" interface to mam_fin, and fix some things in RSM
Items just received were not taken into account because:
- RSM code is checking iq['mam_fin']['results'], results were at
iq['mam']['results']
- RSM handler was run after checking the number
Diffstat (limited to 'slixmpp/plugins/xep_0313/stanza.py')
-rw-r--r-- | slixmpp/plugins/xep_0313/stanza.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/slixmpp/plugins/xep_0313/stanza.py b/slixmpp/plugins/xep_0313/stanza.py index fbca3c8e..6633717f 100644 --- a/slixmpp/plugins/xep_0313/stanza.py +++ b/slixmpp/plugins/xep_0313/stanza.py @@ -187,6 +187,24 @@ class Fin(ElementBase): name = 'fin' namespace = 'urn:xmpp:mam:2' plugin_attrib = 'mam_fin' + interfaces = {'results'} + + def setup(self, xml=None): + ElementBase.setup(self, xml) + self._results: List[Message] = [] + + # The results interface is meant only as an easy + # way to access the set of collected message responses + # from the query. + + def get_results(self) -> List[Message]: + return self._results + + def set_results(self, values: List[Message]): + self._results = values + + def del_results(self): + self._results = [] class Result(ElementBase): |