plugin XEP-0060: add a force options for publish options in send_items:
The new `force` option can be used to force the update of configuration is `publish-option` fails. Use this new `force` option in XEP-0384.
This commit is contained in:
parent
f8d383258c
commit
01e695cebb
2 changed files with 18 additions and 2 deletions
|
|
@ -602,6 +602,9 @@ class XEP_0060(object):
|
|||
- self.EXTRA_ON_PRECOND_NOT_MET(str): policy to have when publishing is
|
||||
failing du to failing precondition. Value can be:
|
||||
* raise (default): raise the exception
|
||||
* force: try to re-configure the node with the given option. Be sure to
|
||||
use this option carefully, and not not give public access to a node
|
||||
which has not on purpose.
|
||||
* publish_without_options: re-publish without the publish-options.
|
||||
A warning will be logged showing that the publish-options could not
|
||||
be used
|
||||
|
|
@ -638,6 +641,19 @@ class XEP_0060(object):
|
|||
policy = extra.get(self.EXTRA_ON_PRECOND_NOT_MET, "raise")
|
||||
if policy == "raise":
|
||||
raise e
|
||||
elif policy == "force":
|
||||
log.debug(
|
||||
f"[{client.profile}] Force configuration for {nodeIdentifier!r} "
|
||||
f"at {service}: {publish_options}"
|
||||
)
|
||||
await self.setConfiguration(
|
||||
client, service, nodeIdentifier, publish_options
|
||||
)
|
||||
log.debug("Configuration updated.")
|
||||
return await self.send_items(
|
||||
client, service, nodeIdentifier, items, sender, extra
|
||||
)
|
||||
|
||||
elif policy == "publish_without_options":
|
||||
log.warning(
|
||||
_(
|
||||
|
|
|
|||
|
|
@ -891,7 +891,7 @@ def make_session_manager(
|
|||
XEP_0060.OPT_ACCESS_MODEL: "open",
|
||||
XEP_0060.OPT_MAX_ITEMS: "max",
|
||||
},
|
||||
XEP_0060.EXTRA_ON_PRECOND_NOT_MET: "raise",
|
||||
XEP_0060.EXTRA_ON_PRECOND_NOT_MET: "force",
|
||||
},
|
||||
)
|
||||
except (error.StanzaError, Exception) as e:
|
||||
|
|
@ -1059,7 +1059,7 @@ def make_session_manager(
|
|||
XEP_0060.OPT_MAX_ITEMS: 1,
|
||||
XEP_0060.OPT_ACCESS_MODEL: "open",
|
||||
},
|
||||
XEP_0060.EXTRA_ON_PRECOND_NOT_MET: "raise",
|
||||
XEP_0060.EXTRA_ON_PRECOND_NOT_MET: "force",
|
||||
},
|
||||
)
|
||||
except (error.StanzaError, Exception) as e:
|
||||
|
|
|
|||
Loading…
Reference in a new issue