Práce s informacemi z discovery z pluginu
Získání identity kontaktu
Identitu kontaktu můžeme z Pyxlu získat následujícím kódem:
def ziskejIdentitu(self,jid):
# ziskani identity, kterou ma Pyxl ulozenou v pameti (jid je typu unicode)
identity=self.main.client.getIdentity(jid)
# Pyxl jeste nema stazenou identitu tohoto kontaktu
if not identity:
# pozadame o stazeni
d=self.main.client.getDiscoInfo(jid)
# pridame callback funkci, ktera se spusti az se discoInfo stahne a preda se mu parametr jid
d.addCallback(self.funkce,jid)
def funkce(self,node,jid):
# tahle funkce se spusti po stazeni discoInfo Pyxlem a proto uz je v nem identita ulozena a muzeme ji ziskat
identity=self.main.client.getIdentity(jid)
Návratová hodnota funkce getIdentity například pro Jdisk vypadá následovně:
{u'Filestore - Jabber Disk': {u'category': u'store', u'type': u'file', u'name': u'Filestore - Jabber Disk'}}
Ověření identity kontaktu
self.main.client.hasIdentity(frm.host, category) self.main.client.hasIdentity(frm.host, category,typ)
Vrátí False, pokud kontakt nemá danou identitu, None pokud Pyxl nemá tento kontakt ve své databázi a True pokud kontakt danou identitu má. Pokud Pyxl nemá kontakt v databázi, opět se dá stáhnout postupem uvedeným výše. Pro kontakty v rosteru se stahuje automaticky.
