Skip to content

Instantly share code, notes, and snippets.

@fndiaz
Created May 21, 2013 01:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fndiaz/5617014 to your computer and use it in GitHub Desktop.
Save fndiaz/5617014 to your computer and use it in GitHub Desktop.
xmpp facebook client
#!/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="fervieira2@chat.facebook.com"
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