22 sept 2014

Yowsup: Aplicaciones éticas y no tan éticas para WhatsApp. Parte 4

Buenas a todos, en el post de hoy continuaremos con la cadena "Yowsup: Aplicaciones éticas y no tan éticas para WhatsApp" para mostraros una aplicación que nos ha enviado Rodrigo Ávila desde Argentina (¡gracias!), y con la que podréis verificar la ultima vez que una cantidad de números determinadas estuvieron en línea.

A continuación compartimos el código de Rodrigo:

  1. # -*- coding: utf-8 -*-
  2. #!/usr/bin/python
  3. #Por Rodrigo Avila - @el_rodrix
  4. #rodrigo398@hotmail.com
  5. import argparse, sys, os, csv
  6. from Yowsup.Common.utilities import Utilities
  7. from Yowsup.Common.debugger import Debugger
  8. from Yowsup.Common.constants import Constants
  9. from Yowsup.Contacts.contacts import WAContactsSyncRequest
  10. from Yowsup.connectionmanager import YowsupConnectionManager
  11. import threading,time, base64
  12. #.....................config.......................
  13. nickname = "549XXXXXXXXXX" #Agregar numero movil
  14. username = "549XXXXXXXXXX" #Agregar usuario
  15. password = "XXXXXXXXXXXXXX" #Agregar pass
  16. target = ["549xxxxxxx", "549xxxxxxxx"] #Ingresar los numeros a verificar en esta lista
  17. #....................................................................
  18. password = base64.b64decode(bytes(password.encode('utf-8')))
  19. jid = range(len(target))
  20. for x in range(0, len(target)):
  21.     jid[x] = "%s@s.whatsapp.net" % target[x]
  22.     print jid[x]
  23. Debugger.enabled = True if '-d' in sys.argv else False
  24. def login(username, password):
  25.     print "[] Autenticado como: %s (%s)\n" % (nickname, username)
  26.     methodsInterface.call("auth_login", (username, password))
  27. def send(jid, msg):
  28.     methodsInterface.call("message_send", (jid, msg))
  29. def onAuthSuccess(username):
  30.     print("Autenticado!!\n\n")
  31.     methodsInterface.call("ready")
  32.     methodsInterface.call("presence_sendAvailableForChat", (nickname,))
  33.     methodsInterface.call("presence_sendAvailable")
  34.     for x in range(0, len(target)):
  35.         methodsInterface.call("presence_request", (jid[x],))
  36.         time.sleep(2)
  37.     t = 5
  38.     i = 0
  39.     while i < t:
  40.         time.sleep(0.5)
  41.         i=i+1
  42. def onAuthFailed(username, err):
  43.     print("Auth Failed!")
  44. def onPresenceUpdated(jid, lastSeen):
  45.     print time.strftime("Ultima vez en linea hace: %H horas %M minutos", time.gmtime(lastSeen))
  46. ########################### EVENTOS #############################   
  47. connectionManager = YowsupConnectionManager()
  48. signalsInterface = connectionManager.getSignalsInterface()
  49. methodsInterface = connectionManager.getMethodsInterface()
  50. connectionManager.setAutoPong(True)
  51. signalsInterface.registerListener("auth_success", onAuthSuccess)
  52. signalsInterface.registerListener("auth_fail", onAuthFailed)
  53. signalsInterface.registerListener("presence_updated", onPresenceUpdated)
  54. #####################################################################
  55. login(username, password)

También tenéis disponible la aplicación en el siguiente pastebin: http://pastebin.com/5BKrZbp3

Hasta el próximo post,

Saludos!

No hay comentarios:

Publicar un comentario