XEP-0461: add quoted fallback helper
This commit is contained in:
parent
89b1e1e682
commit
9b51be1e17
2 changed files with 25 additions and 0 deletions
|
@ -28,6 +28,14 @@ class FeatureFallBack(ElementBase):
|
||||||
else:
|
else:
|
||||||
return body
|
return body
|
||||||
|
|
||||||
|
def add_quoted_fallback(self, fallback: str):
|
||||||
|
msg = self.parent()
|
||||||
|
quoted = "\n".join("> " + x.strip() for x in fallback.split("\n")) + "\n"
|
||||||
|
msg["body"] = quoted + msg["body"]
|
||||||
|
msg["feature_fallback"]["for"] = NS
|
||||||
|
msg["feature_fallback"]["fallback_body"]["start"] = 0
|
||||||
|
msg["feature_fallback"]["fallback_body"]["end"] = len(quoted)
|
||||||
|
|
||||||
|
|
||||||
class FallBackBody(ElementBase):
|
class FallBackBody(ElementBase):
|
||||||
# According to https://xmpp.org/extensions/inbox/compatibility-fallback.html
|
# According to https://xmpp.org/extensions/inbox/compatibility-fallback.html
|
||||||
|
|
|
@ -44,5 +44,22 @@ class TestReply(SlixTest):
|
||||||
|
|
||||||
assert message["feature_fallback"].get_stripped_body() == "realbody"
|
assert message["feature_fallback"].get_stripped_body() == "realbody"
|
||||||
|
|
||||||
|
def testAddFallBackHelper(self):
|
||||||
|
msg = Message()
|
||||||
|
msg["body"] = "Great"
|
||||||
|
msg["feature_fallback"].add_quoted_fallback("Anna wrote:\nHi, how are you?")
|
||||||
|
# ugly dedent but the test does not pass without it
|
||||||
|
self.check(
|
||||||
|
msg,
|
||||||
|
"""
|
||||||
|
<message xmlns="jabber:client" type="normal">
|
||||||
|
<body>> Anna wrote:\n> Hi, how are you?\nGreat</body>
|
||||||
|
<fallback xmlns="urn:xmpp:feature-fallback:0" for="urn:xmpp:reply:0">
|
||||||
|
<body start='0' end='33' />
|
||||||
|
</fallback>
|
||||||
|
</message>
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
suite = unittest.TestLoader().loadTestsFromTestCase(TestReply)
|
suite = unittest.TestLoader().loadTestsFromTestCase(TestReply)
|
||||||
|
|
Loading…
Reference in a new issue