Created
May 21, 2013 01:47
-
-
Save fndiaz/5617014 to your computer and use it in GitHub Desktop.
xmpp facebook client
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
# coding: utf-8 | |
import sys, xmpp, os, signal, time, re, commands, requests, json | |
reload(sys) | |
sys.setdefaultencoding("utf-8") | |
def messageCB(conn,msg): | |
mess=str(msg.getBody()) | |
rec=str(msg.getFrom()) | |
rec0=rec.split('/')[0] | |
var2=rec0.split('@')[0] | |
var3=var2.split('-')[1] | |
filtro = re.compile("gay|boiola|baitola|bicha|viado|bambi|gayzinho|bixa|teste") | |
#if mess == "gay": | |
if (filtro.match(mess)): | |
recive(var3, mess) | |
#for i in range(0, 20): | |
send(conn, rec0, var3) | |
#print i | |
#i=i+1 | |
elif mess == "None": | |
acao='Está digitando' | |
alerta(var3, acao) | |
else: | |
recive(var3, mess) | |
#print "Rementente: %s" %(rec) | |
#print "mensagem acima nao foi agressiva\n" | |
def StepOn(conn): | |
try: | |
conn.Process(1) | |
except KeyboardInterrupt: | |
return 0 | |
return 1 | |
def GoOn(conn): | |
while StepOn(conn): | |
pass | |
def recive(var3, mess): | |
print "########### Mensagem Recebida ############" | |
acao ='mensagem' | |
alerta(var3, acao) | |
print ">> %s \n" %(mess) | |
def send(conn, rec0, var3): | |
print var3 | |
r=requests.get('http://graph.facebook.com/%s' %(var3)) | |
var_name = r.json()['name'] | |
print "<< enviandoo resposta para %s\n" %(var_name) | |
conn.send(xmpp.protocol.Message(rec0,"viado eh vc cuzao", "chat")) | |
def presenceHandler(conn, presence): | |
#if presence: | |
rec0 = presence.getFrom().getStripped() | |
status = presence.getType() | |
var2=rec0.split('@')[0] | |
var3=var2.split('-')[1] | |
#print var2, var3 | |
if presence.getType() is None: | |
acao = 'online' | |
alerta(var3, acao) | |
#print "contato: %s >> status: %s\n" %(var3, status) | |
#conn.RegisterHandler('iq', roster_iqCB, rec0) | |
#send(conn, rec0) | |
elif presence.getType() == "unavailable": | |
contato = presence.getFrom().getStripped() | |
status = presence.getType() | |
acao = 'offline' | |
alerta(var3, acao) | |
#print "contato: %s >> status: %s" %(contato, status) | |
def alerta(var3, acao): | |
r=requests.get('http://graph.facebook.com/%s' %(var3)) | |
var_name = r.json()['name'] | |
print var3 | |
print '%s >>> %s\n' %(var_name, acao) | |
def roster_iqCB(iq, item): | |
query = item.getTag(name='query') | |
#name = query[1].getTagAttr('item', 'name') | |
#jid = query[1].getTagAttr('item', 'jid') | |
#print name, jid | |
#print "########################################################################NOMEE: %s" % (query) | |
print query | |
def main(): | |
os.system("clear") | |
print "carregando..." | |
jid="[email protected]" | |
pwd="senha" | |
jid=xmpp.protocol.JID(jid) | |
cl = xmpp.Client(jid.getDomain(), debug=[]) | |
if cl.connect() == "": | |
print "not connected" | |
sys.exit(0) | |
if cl.auth(jid.getNode(),pwd) == None: | |
print "authentication failed" | |
sys.exit(0) | |
os.system("clear") | |
print "############## Facebook Client ##############" | |
cl.RegisterHandler('presence',presenceHandler) | |
cl.RegisterHandler('message', messageCB) | |
# cl.RegisterHandler('iq', roster_iqCB) | |
cl.sendInitPresence() | |
GoOn(cl) | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment