Mercurial > libervia-backend
comparison sat/plugins/plugin_xep_0060.py @ 3791:c61233f51b86
plugin XEP-0060: do not raise an error when not subscribed on unsubscribe:
when an error is received on unsubscribe because user was not subscribed, a warning is
logged, but no exception is raised anymore, as the expected result is reached.
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 17 Jun 2022 14:15:23 +0200 |
parents | b7cef1b24f83 |
children | 853cbaf56e9e |
comparison
equal
deleted
inserted
replaced
3790:24f70a29e382 | 3791:c61233f51b86 |
---|---|
1194 if not await self.host.trigger.asyncPoint( | 1194 if not await self.host.trigger.asyncPoint( |
1195 "XEP-0060_unsubscribe", client, service, nodeIdentifier, sub_jid, | 1195 "XEP-0060_unsubscribe", client, service, nodeIdentifier, sub_jid, |
1196 subscriptionIdentifier, sender | 1196 subscriptionIdentifier, sender |
1197 ): | 1197 ): |
1198 return | 1198 return |
1199 await client.pubsub_client.unsubscribe( | 1199 try: |
1200 await client.pubsub_client.unsubscribe( | |
1200 service, | 1201 service, |
1201 nodeIdentifier, | 1202 nodeIdentifier, |
1202 sub_jid or client.jid.userhostJID(), | 1203 sub_jid or client.jid.userhostJID(), |
1203 subscriptionIdentifier, | 1204 subscriptionIdentifier, |
1204 sender, | 1205 sender, |
1205 ) | 1206 ) |
1207 except error.StanzaError as e: | |
1208 try: | |
1209 next(e.getElement().elements(pubsub.NS_PUBSUB_ERRORS, "not-subscribed")) | |
1210 except StopIteration: | |
1211 raise e | |
1212 else: | |
1213 log.info( | |
1214 f"{sender.full() if sender else client.jid.full()} was not " | |
1215 f"subscribed to node {nodeIdentifier!s} at {service.full()}" | |
1216 ) | |
1206 | 1217 |
1207 @utils.ensure_deferred | 1218 @utils.ensure_deferred |
1208 async def _subscriptions( | 1219 async def _subscriptions( |
1209 self, | 1220 self, |
1210 service="", | 1221 service="", |