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