Mercurial > libervia-backend
comparison src/plugins/plugin_xep_0065.py @ 944:e1842ebcb2f3
core, plugin XEP-0115: discovery refactoring:
- hashing algorithm of XEP-0115 has been including in core
- our own hash is still calculated by XEP-0115 and can be regenerated with XEP_0115.recalculateHash
- old discovery methods have been removed. Now the following methods are used:
- hasFeature: tell if a feature is available for an entity
- getDiscoInfos: self explaining
- getDiscoItems: self explaining
- findServiceEntities: return all available items of an entity which given (category, type)
- findFeaturesSet: search for a set of features in entity + entity's items
all these methods are asynchronous, and manage cache automatically
- XEP-0115 manage in a better way hashes, and now use a trigger for presence instead of monkey patch
- new FeatureNotFound exception, when we want to do something which is not available
- refactored client initialisation sequence, removed client.initialized Deferred
- added constant APP_URL
- test_plugin_xep_0033.py has been temporarly deactivated, the time to adapt it
- lot of cleaning
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 28 Mar 2014 18:07:22 +0100 |
parents | c6d8fc63b1db |
children | 132de9d487ac |
comparison
equal
deleted
inserted
replaced
943:71926ec2114d | 944:e1842ebcb2f3 |
---|---|
785 "File Transfer", profile_key=self.parent.profile) | 785 "File Transfer", profile_key=self.parent.profile) |
786 self.host.memory.setParam("Proxy port", streamhost_elt.getAttribute("port", ""), | 786 self.host.memory.setParam("Proxy port", streamhost_elt.getAttribute("port", ""), |
787 "File Transfer", profile_key=self.parent.profile) | 787 "File Transfer", profile_key=self.parent.profile) |
788 | 788 |
789 def connectionInitialized(self): | 789 def connectionInitialized(self): |
790 def after_init(ignore): | |
791 proxy_ent = self.host.memory.getServerServiceEntity("proxy", "bytestreams", profile=self.parent.profile) | |
792 if not proxy_ent: | |
793 debug(_("No proxy found on this server")) | |
794 return | |
795 iq_elt = jabber_client.IQ(self.parent.xmlstream, 'get') | |
796 iq_elt["to"] = proxy_ent.full() | |
797 iq_elt.addElement('query', NS_BS) | |
798 iq_elt.addCallback(self._proxyDataResult) | |
799 iq_elt.send() | |
800 | |
801 self.xmlstream.addObserver(BS_REQUEST, self.plugin_parent.streamQuery, profile=self.parent.profile) | 790 self.xmlstream.addObserver(BS_REQUEST, self.plugin_parent.streamQuery, profile=self.parent.profile) |
802 proxy = self.host.memory.getParamA("Proxy", "File Transfer", profile_key=self.parent.profile) | 791 proxy = self.host.memory.getParamA("Proxy", "File Transfer", profile_key=self.parent.profile) |
803 if not proxy: | 792 if not proxy: |
804 self.parent.client_initialized.addCallback(after_init) | 793 def proxiesFound(entities): |
794 try: | |
795 proxy_ent = entities.pop() | |
796 except KeyError: | |
797 info(_("No proxy found on this server")) | |
798 return | |
799 iq_elt = jabber_client.IQ(self.parent.xmlstream, 'get') | |
800 iq_elt["to"] = proxy_ent.full() | |
801 iq_elt.addElement('query', NS_BS) | |
802 iq_elt.addCallback(self._proxyDataResult) | |
803 iq_elt.send() | |
804 d = self.host.findServiceEntities("proxy", "bytestreams", profile_key=self.parent.profile) | |
805 d.addCallback(proxiesFound) | |
806 | |
805 | 807 |
806 def getDiscoInfo(self, requestor, target, nodeIdentifier=''): | 808 def getDiscoInfo(self, requestor, target, nodeIdentifier=''): |
807 return [disco.DiscoFeature(NS_BS)] | 809 return [disco.DiscoFeature(NS_BS)] |
808 | 810 |
809 def getDiscoItems(self, requestor, target, nodeIdentifier=''): | 811 def getDiscoItems(self, requestor, target, nodeIdentifier=''): |