Mercurial > libervia-backend
comparison plugins/plugin_xep_0077.py @ 169:06985b6ad23a
SàT: plugin 0077 & 0100: fixed profile management
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 12 Aug 2010 12:30:36 +0800 |
parents | 6be927a465ed |
children |
comparison
equal
deleted
inserted
replaced
168:a2655a0a4eac | 169:06985b6ad23a |
---|---|
48 self.host = host | 48 self.host = host |
49 self.triggers = {} #used by other protocol (e.g. XEP-0100) to finish registration. key = target_jid | 49 self.triggers = {} #used by other protocol (e.g. XEP-0100) to finish registration. key = target_jid |
50 host.bridge.addMethod("in_band_register", ".communication", in_sign='ss', out_sign='s', method=self.in_band_register) | 50 host.bridge.addMethod("in_band_register", ".communication", in_sign='ss', out_sign='s', method=self.in_band_register) |
51 host.bridge.addMethod("in_band_submit", ".request", in_sign='sa(ss)', out_sign='s', method=self.in_band_submit) | 51 host.bridge.addMethod("in_band_submit", ".request", in_sign='sa(ss)', out_sign='s', method=self.in_band_submit) |
52 | 52 |
53 def addTrigger(self, target, cb): | 53 def addTrigger(self, target, cb, profile): |
54 """Add a callback which is called when registration to target is successful""" | 54 """Add a callback which is called when registration to target is successful""" |
55 self.triggers[target] = cb | 55 self.triggers[target] = (cb, profile) |
56 | 56 |
57 def reg_ok(self, answer): | 57 def reg_ok(self, answer): |
58 """Called after the first get IQ""" | 58 """Called after the first get IQ""" |
59 try: | 59 try: |
60 x_elem = filter (lambda x:x.name == "x", answer.firstChildElement().elements())[0] #We only want the "x" element (data form) | 60 x_elem = filter (lambda x:x.name == "x", answer.firstChildElement().elements())[0] #We only want the "x" element (data form) |
97 debug (_("registration answer: %s") % answer.toXml()) | 97 debug (_("registration answer: %s") % answer.toXml()) |
98 answer_type = "SUCCESS" | 98 answer_type = "SUCCESS" |
99 answer_data={"message":_("Registration successfull")} | 99 answer_data={"message":_("Registration successfull")} |
100 self.host.bridge.actionResult(answer_type, answer['id'], answer_data) | 100 self.host.bridge.actionResult(answer_type, answer['id'], answer_data) |
101 if self.triggers.has_key(answer["from"]): | 101 if self.triggers.has_key(answer["from"]): |
102 self.triggers[answer["from"]](answer["from"]) | 102 callback,profile = self.triggers[answer["from"]] |
103 callback(answer["from"], profile) | |
103 del self.triggers[answer["from"]] | 104 del self.triggers[answer["from"]] |
104 | 105 |
105 def registrationFailure(self, failure): | 106 def registrationFailure(self, failure): |
106 info (_("Registration failure: %s") % str(failure.value)) | 107 info (_("Registration failure: %s") % str(failure.value)) |
107 print failure.value.stanza.toXml() | 108 print failure.value.stanza.toXml() |
115 answer_data={"message":_("Registration failed")} | 116 answer_data={"message":_("Registration failed")} |
116 self.host.bridge.actionResult(answer_type, failure.value.stanza['id'], answer_data) | 117 self.host.bridge.actionResult(answer_type, failure.value.stanza['id'], answer_data) |
117 if self.triggers.has_key(answer["from"]): | 118 if self.triggers.has_key(answer["from"]): |
118 del self.triggers[answer["from"]] | 119 del self.triggers[answer["from"]] |
119 | 120 |
120 def in_band_submit(self, action, target, fields): | 121 def in_band_submit(self, action, target, fields, profile): |
121 """Submit a form for registration, using data_form""" | 122 """Submit a form for registration, using data_form""" |
122 id, deferred = self.host.submitForm(action, target, fields) | 123 id, deferred = self.host.submitForm(action, target, fields, profile) |
123 if action == 'CANCEL': | 124 if action == 'CANCEL': |
124 deferred.addCallbacks(self.unregistrationAnswer, self.unregistrationFailure) | 125 deferred.addCallbacks(self.unregistrationAnswer, self.unregistrationFailure) |
125 else: | 126 else: |
126 deferred.addCallbacks(self.registrationAnswer, self.registrationFailure) | 127 deferred.addCallbacks(self.registrationAnswer, self.registrationFailure) |
127 return id | 128 return id |