Mercurial > libervia-backend
comparison plugins/plugin_xep_0054.py @ 43:8a438a6ff587
Wix: added avatar in profile
- plugin XEP-0054: added getProfileFile bridge method
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 21 Dec 2009 15:11:50 +1100 |
parents | 874de3020e1c |
children | bfa7086d26d6 |
comparison
equal
deleted
inserted
replaced
42:874de3020e1c | 43:8a438a6ff587 |
---|---|
59 self.host = host | 59 self.host = host |
60 self.avatar_path = os.path.expanduser(self.host.get_const('local_dir') + AVATAR_PATH) | 60 self.avatar_path = os.path.expanduser(self.host.get_const('local_dir') + AVATAR_PATH) |
61 if not os.path.exists(self.avatar_path): | 61 if not os.path.exists(self.avatar_path): |
62 os.makedirs(self.avatar_path) | 62 os.makedirs(self.avatar_path) |
63 host.bridge.addMethod("getProfile", ".communication", in_sign='s', out_sign='s', method=self.getProfile) | 63 host.bridge.addMethod("getProfile", ".communication", in_sign='s', out_sign='s', method=self.getProfile) |
64 host.bridge.addMethod("getAvatarFile", ".communication", in_sign='s', out_sign='s', method=self.getAvatarFile) | |
64 | 65 |
65 def getDiscoInfo(self, requestor, target, nodeIdentifier=''): | 66 def getDiscoInfo(self, requestor, target, nodeIdentifier=''): |
66 return [disco.DiscoFeature(NS_VCARD)] | 67 return [disco.DiscoFeature(NS_VCARD)] |
67 | 68 |
68 def getDiscoItems(self, requestor, target, nodeIdentifier=''): | 69 def getDiscoItems(self, requestor, target, nodeIdentifier=''): |
108 elif elem.name == 'PHOTO': | 109 elif elem.name == 'PHOTO': |
109 debug('photo deferred') | 110 debug('photo deferred') |
110 d2 = defer.waitForDeferred( | 111 d2 = defer.waitForDeferred( |
111 threads.deferToThread(self.save_photo, elem)) | 112 threads.deferToThread(self.save_photo, elem)) |
112 yield d2 | 113 yield d2 |
113 dictionary["photo"] = d2.getResult() | 114 dictionary["avatar"] = d2.getResult() |
114 else: | 115 else: |
115 info ('FIXME: [%s] VCard tag is not managed yet' % elem.name) | 116 info ('FIXME: [%s] VCard tag is not managed yet' % elem.name) |
116 | 117 |
117 yield dictionary | 118 yield dictionary |
118 | 119 |
143 reg_request["to"] = to_jid.full() | 144 reg_request["to"] = to_jid.full() |
144 query=reg_request.addElement('vCard', NS_VCARD) | 145 query=reg_request.addElement('vCard', NS_VCARD) |
145 reg_request.send(to_jid.full()).addCallbacks(self.vcard_ok, self.vcard_err) | 146 reg_request.send(to_jid.full()).addCallbacks(self.vcard_ok, self.vcard_err) |
146 return reg_request["id"] | 147 return reg_request["id"] |
147 | 148 |
149 def getAvatarFile(self, hash): | |
150 """Give the full path of avatar from hash | |
151 @param hash: SHA1 hash | |
152 @return full_path | |
153 """ | |
154 filename = self.avatar_path+'/'+hash | |
155 if not os.path.exists(filename): | |
156 error ("Asking for an uncached avatar [%s]" % hash) | |
157 return "" | |
158 return filename | |
159 |