Abychom mohli pracovat v pythonu s protokolem xmpp, který využívá jaber, musíme si nejprve doinstalovat potřebnou knihovnu:
sudo apt-get install python-xmpp
Nyní se podíváme na jednuduchou třídu, která bude odesílat zprávy. V první části si naimportujeme potřebné knihovny.
#!/usr/bin/python
import sys,os
try:
import xmpp
except:
print ("%s") % "Knihovna xmpp neni instalovana"
Vytvoříme si metodu konstruktoru, který nám bude ukládat a zpřístupňovat konfiguraci uloženou na disku. Při prvním spuštění se nám v naší domovské složce vytvoří soubor ".xsend", do které uložíme příštupové hodnoty na jabberovský účet. Seznam kontaktů slouží jen k urychlení přístupu adres, na které budeme odesílat zprávy.
class jabber:
def __init__(self):
self.jidparams={}
if os.access(os.environ['HOME']+'/.xsend',os.R_OK):
for ln in open(os.environ['HOME']+'/.xsend').readlines():
key,val=ln.strip().split('=',1)
self.jidparams[key.lower()]=val
for mandatory in ['jid','password']:
if mandatory not in self.jidparams.keys():
open(os.environ['HOME']+'/.xsend','w').write('#JID=romeo@montague.net\n#PASSWORD=juliet\n')
print 'Please ensure the ~/.xsend file has valid JID for sending messages.'
sys.exit(0)
#seznam kontaktu
self.list= [
"user1@mail.com",
"user2@mail.com",
]
def get_list(self):
return self.list
Metoda zajišťující připojení k serveru bude vypadat velice jednoduše.
def connect(self):
jid=xmpp.protocol.JID(self.jidparams['jid'])
self.cl=xmpp.Client(jid.getDomain(),debug=[])
self.cl.connect()
auth = self.cl.auth(jid.getNode(),self.jidparams['password'])
if not auth:
print ("nemohu se pripojit")
exit(0)
Poslední metodou bude odeslání zprávy na adresu vybranou podle indexu z nadefinovaného seznamu.
def send(self,tojid,text):
print ("send to %s") % (self.list[int(tojid)])
#self.cl.sendInitialPresence()
self.cl.send(xmpp.protocol.Message(self.list[int(tojid)],text))
Teď už stačí jen vytvořit hlavní část programu, která bude pracovat s naší nadefinovanou třídou. Program bude jako první parametr brát číslo určující index uživatele, kterému bude zpráva poslána a jako drouhý argument text zprávy, např, python prog.py 0 "Testovací zpráva".
oj = jabber() oj.connect() text=' '.join(sys.argv[2:]) oj.send(sys.argv[1],text)
Práce s knihovnou xampp je jednoduchá a její využití může být velké. Příkladem může být zapasování do djanga na odesílání informací o chybách nebo aktivitě uživatelů, popřípadě informování o chybových stavem na serverů.