Exemple #1
0
 def get_vcard(self, jid, callback=None):
     if not callback:
         callback = self.vcard_callback
     q = Iq(to_jid=jid.bare(), stanza_type='get')
     q.add_payload(VCardPayload())
     self.stanza_processor.set_response_handlers(q, callback, callback)
     self.send(q)        
Exemple #2
0
 def get_vcard(self, jid, callback):
     '''callback is used as both result handler and error handler'''
     q = Iq(to_jid=jid.bare(), stanza_type='get')
     vc = ET.Element("{vcard-temp}vCard")
     q.add_payload(vc)
     self.stanza_processor.set_response_handlers(q, callback, callback)
     self.send(q)
Exemple #3
0
 def get_vcard(self, jid, callback=None):
     if not callback:
         callback = self.vcard_callback
     q = Iq(to_jid=jid.bare(), stanza_type='get')
     q.add_payload(VCardPayload())
     self.stanza_processor.set_response_handlers(q, callback, callback)
     self.send(q)
Exemple #4
0
    def _set_vcard(self, nick=None, avatar=None, stanza=None):
        #FIXME: This doesn't seem to work with jabber.org
        q = Iq(
            from_jid=self.jid,
            stanza_type='set',
        )
        vc = ET.Element("{vcard-temp}vCard")
        if nick is not None:
            n = ET.SubElement(vc, '{vcard-temp}FN')
            n.text = nick
        if avatar is not None:
            type, picfile = avatar
            photo = ET.SubElement(vc, '{vcard-temp}PHOTO')
            t = ET.SubElement(photo, '{vcard-temp}TYPE')
            t.text = type
            d = ET.SubElement(photo, '{vcard-temp}BINVAL')
            data = open(picfile, 'rb').read()
            d.text = base64.b64encode(data).decode('ascii')
            self.avatar_hash = hashlib.new('sha1', data).hexdigest()

        q.add_payload(vc)
        self.stanza_processor.set_response_handlers(q,
                                                    self._set_vcard_callback,
                                                    self._set_vcard_callback)
        self.send(q)
Exemple #5
0
 def get_vcard(self, jid, callback):
     """callback is used as both result handler and error handler"""
     q = Iq(to_jid=jid.bare(), stanza_type="get")
     vc = ET.Element("{vcard-temp}vCard")
     q.add_payload(vc)
     self.stanza_processor.set_response_handlers(q, callback, callback)
     self.send(q)
 def test_iq_set(self):
     iq = Iq(from_jid=JID("[email protected]/res"), to_jid=JID("*****@*****.**"), stanza_type="set", stanza_id=2)
     payload = ElementTree.Element("{http://pyxmpp.jajcus.net/xmlns/test}payload")
     ElementTree.SubElement(payload, "{http://pyxmpp.jajcus.net/xmlns/test}abc")
     payload = XMLPayload(payload)
     iq.add_payload(payload)
     self.check_iq3(iq)
     xml = iq.as_xml()
     self.check_iq3(Iq(xml))
Exemple #7
0
 def get_vcard(self, jid=None, callback=None):
   '''callback is used as both result handler and error handler'''
   q = Iq(
     to_jid = jid and jid.bare(),
     stanza_type = 'get',
   )
   vc = ET.Element("{vcard-temp}vCard")
   q.add_payload(vc)
   if callback:
     self.stanza_processor.set_response_handlers(q, callback, callback)
   self.send(q)
Exemple #8
0
 def test_iq_set(self):
     iq = Iq(from_jid=JID("[email protected]/res"),
             to_jid=JID("*****@*****.**"),
             stanza_type="set",
             stanza_id=2)
     payload = ElementTree.Element(
         "{http://pyxmpp.jajcus.net/xmlns/test}payload")
     ElementTree.SubElement(payload,
                            "{http://pyxmpp.jajcus.net/xmlns/test}abc")
     payload = XMLPayload(payload)
     iq.add_payload(payload)
     self.check_iq3(iq)
     xml = iq.as_xml()
     self.check_iq3(Iq(xml))
Exemple #9
0
  def _set_vcard(self, nick=None, avatar=None, stanza=None):
    #FIXME: This doesn't seem to work with jabber.org
    q = Iq(
      from_jid = self.jid,
      stanza_type = 'set',
    )
    vc = ET.Element("{vcard-temp}vCard")
    if nick is not None:
      n = ET.SubElement(vc, '{vcard-temp}FN')
      n.text = nick
    if avatar is not None:
      type, picfile = avatar
      photo = ET.SubElement(vc, '{vcard-temp}PHOTO')
      t = ET.SubElement(photo, '{vcard-temp}TYPE')
      t.text = type
      d = ET.SubElement(photo, '{vcard-temp}BINVAL')
      data = open(picfile, 'rb').read()
      d.text = base64.b64encode(data).decode('ascii')
      self.avatar_hash = hashlib.new('sha1', data).hexdigest()

    q.add_payload(vc)
    self.stanza_processor.set_response_handlers(
      q, self._set_vcard_callback, self._set_vcard_callback)
    self.send(q)