Mercurial > libervia-backend
comparison src/plugins/plugin_xep_0033.py @ 2148:a543eda2c923
core (memory/disco): getInfos now handle node + use client instead of profile in many methods
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 12 Feb 2017 20:43:20 +0100 |
parents | 33c8c4973743 |
children | 6a004a22dd9e |
comparison
equal
deleted
inserted
replaced
2147:bca699faf416 | 2148:a543eda2c923 |
---|---|
99 element.addChild(domish.Element((None, 'address'), None, {'type': type_, 'jid': jid_})) | 99 element.addChild(domish.Element((None, 'address'), None, {'type': type_, 'jid': jid_})) |
100 # when the prosody plugin is completed, we can immediately return mess_data from here | 100 # when the prosody plugin is completed, we can immediately return mess_data from here |
101 self.sendAndStoreMessage(mess_data, entries, profile) | 101 self.sendAndStoreMessage(mess_data, entries, profile) |
102 log.debug("XEP-0033 took over") | 102 log.debug("XEP-0033 took over") |
103 raise failure.Failure(exceptions.CancelError(u'Cancelled by XEP-0033')) | 103 raise failure.Failure(exceptions.CancelError(u'Cancelled by XEP-0033')) |
104 d = self.host.findFeaturesSet([NS_ADDRESS], profile=profile) | 104 d = self.host.findFeaturesSet(client, [NS_ADDRESS]) |
105 d.addCallbacks(discoCallback, lambda dummy: discoCallback(None)) | 105 d.addCallbacks(discoCallback, lambda dummy: discoCallback(None)) |
106 return d | 106 return d |
107 | 107 |
108 post_xml_treatments.addCallback(treatment) | 108 post_xml_treatments.addCallback(treatment) |
109 return True | 109 return True |
119 Ideas: | 119 Ideas: |
120 - fix Prosody plugin to check if target server support the feature | 120 - fix Prosody plugin to check if target server support the feature |
121 - redesign the database to save only one entry to the database | 121 - redesign the database to save only one entry to the database |
122 - change the messageNew signal to eventually pass more than one recipient | 122 - change the messageNew signal to eventually pass more than one recipient |
123 """ | 123 """ |
124 client = self.host.getClient(profile) | |
124 def send(mess_data, skip_send=False): | 125 def send(mess_data, skip_send=False): |
125 client = self.host.profiles[profile] | |
126 d = defer.Deferred() | 126 d = defer.Deferred() |
127 if not skip_send: | 127 if not skip_send: |
128 d.addCallback(client.sendMessageData) | 128 d.addCallback(client.sendMessageData) |
129 d.addCallback(self.host.messageAddToHistory, client) | 129 d.addCallback(self.host.messageAddToHistory, client) |
130 d.addCallback(self.host.sendMessageToBridge, client) | 130 d.addCallback(self.host.sendMessageToBridge, client) |
154 timestamp = time() | 154 timestamp = time() |
155 self.internal_data[timestamp] = [] | 155 self.internal_data[timestamp] = [] |
156 defer_list = [] | 156 defer_list = [] |
157 for type_, jid_ in entries: | 157 for type_, jid_ in entries: |
158 d = defer.Deferred() | 158 d = defer.Deferred() |
159 d.addCallback(self.host.findFeaturesSet, jid_=JID(JID(jid_).host), profile=profile) | 159 d.addCallback(self.host.findFeaturesSet, client=client, jid_=JID(JID(jid_).host)) |
160 d.addCallbacks(discoCallback, errback, callbackArgs=[jid_], errbackArgs=[jid_]) | 160 d.addCallbacks(discoCallback, errback, callbackArgs=[jid_], errbackArgs=[jid_]) |
161 d.callback([NS_ADDRESS]) | 161 d.callback([NS_ADDRESS]) |
162 defer_list.append(d) | 162 defer_list.append(d) |
163 d = defer.Deferred().addCallback(lambda dummy: self.internal_data.pop(timestamp)) | 163 d = defer.Deferred().addCallback(lambda dummy: self.internal_data.pop(timestamp)) |
164 defer.DeferredList(defer_list).chainDeferred(d) | 164 defer.DeferredList(defer_list).chainDeferred(d) |