plugin XEP-0055, tmp_directory_subscription: move directory subscription to a new temporary plugin
This commit is contained in:
parent
aa2b4f6e67
commit
930eb1618f
1 changed files with 69 additions and 30 deletions
|
|
@ -45,7 +45,7 @@ PLUGIN_INFO = {
|
|||
"type": "XEP",
|
||||
"protocols": ["XEP-0055"],
|
||||
"dependencies": [],
|
||||
"recommendations": ["XEP-0050", "XEP-0059"],
|
||||
"recommendations": ["XEP-0059"],
|
||||
"main": "XEP_0055",
|
||||
"handler": "no",
|
||||
"description": _("""Implementation of Jabber Search""")
|
||||
|
|
@ -78,8 +78,6 @@ class XEP_0055(object):
|
|||
|
||||
self.__search_menu_id = host.registerCallback(self._getMainUI, with_data=True)
|
||||
host.importMenu((D_("Contacts"), D_("Search directory")), self._getMainUI, security_limit=1, help_string=D_("Search user directory"))
|
||||
if "XEP-0050" in host.plugins:
|
||||
host.importMenu((D_("Service"), D_("Directory subscription")), self.subscribe, security_limit=1, help_string=D_("User directory subscription"))
|
||||
|
||||
def _getHostServices(self, profile):
|
||||
"""Return the jabber search services associated to the user host.
|
||||
|
|
@ -446,33 +444,7 @@ class XEP_0055(object):
|
|||
raise failure
|
||||
|
||||
|
||||
## Subscription ##
|
||||
|
||||
|
||||
def subscribe(self, raw_data, profile):
|
||||
"""Request available commands on the jabber search service associated to profile's host.
|
||||
|
||||
@param raw_data (dict): data received from the frontend
|
||||
@param profile (unicode): %(doc_profile)s
|
||||
@return: a deferred dict{unicode: unicode}
|
||||
"""
|
||||
d = self._getHostServices(profile)
|
||||
|
||||
def got_services(services):
|
||||
service_jid = services[0]
|
||||
d = self.host.plugins["XEP-0050"].requestCommandsList(service_jid, profile)
|
||||
return d.addCallback(got_commands, service_jid)
|
||||
|
||||
def got_commands(form_ui, service_jid):
|
||||
session_id, session_data = self.host.plugins["XEP-0050"].requesting.newSession(profile=profile)
|
||||
session_data["jid"] = service_jid
|
||||
form_ui.session_id = session_id
|
||||
return {'xmlui': form_ui.toXml()}
|
||||
|
||||
return d.addCallback(got_services)
|
||||
|
||||
|
||||
class XEP_0059_handler(XMPPHandler):
|
||||
class XEP_0055_handler(XMPPHandler):
|
||||
implements(iwokkel.IDisco)
|
||||
|
||||
def __init__(self, plugin_parent, profile):
|
||||
|
|
|
|||
Loading…
Reference in a new issue