def __init__(self, keepAlive = False, sendReceipts = False): self.sendReceipts = sendReceipts self.redis=redis.Redis() self.queue_key = 'MESSAGES_LISTS' self.MODE_CONNECTED=1 self.MODE_DISCONNECTED=2 self.MODE_CONNECTING=3 connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("receipt_messageDelivered",self.messageReceived) #self.signalsInterface.registerListener("receipt_messageDelivered", lambda jid, messageId: methodsInterface.call("delivered_ack", (jid, messageId))) self.cm = connectionManager
def __init__(self, target, message, waitForReceipt=False): self.jids = [] if '-' in target: self.jids = ["*****@*****.**" % target] else: self.jids = ["*****@*****.**" % t for t in target.split(',')] self.message = message self.waitForReceipt = waitForReceipt connectionManager = YowsupConnectionManager() self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) if waitForReceipt: self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.gotReceipt = False self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.done = False
def __init__(self, user, password, phone): """WhatsAppClient's constructor. Args: user (str): the local phone number. password (str): the WhatsApp password of 'user'. phone (str): the remote phone number. """ super().__init__() self.user = user try: self.password = base64.b64decode(bytes(password.encode("utf-8"))) except base64.binascii.Error: # Lets Yowsup handle the error. self.password = bytes(password.encode("utf-8")) # Users are identified in WhatsApp by their phone number (plus the # code) followed by the domain '@s.whatsapp.net'. self.phone = phone + "@s.whatsapp.net" self.connected = False # Yowsup managers and signals setting up. connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(True) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("image_received", self.onImageReceived) self.signalsInterface.registerListener("disconnected", self.onDisconnected)
def __init__(self, app, keepAlive = False, sendReceipts = False): self.sendReceipts = sendReceipts self.app = app connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("group_messageReceived", self.onGroupMessageReceived) self.signalsInterface.registerListener("image_received", self.onImageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("contact_gotProfilePicture", self.onGotProfilePicture) self.signalsInterface.registerListener("profile_setStatusSuccess", self.onSetStatusSuccess) self.signalsInterface.registerListener("group_createSuccess", self.onGroupCreateSuccess) self.signalsInterface.registerListener("group_createFail", self.onGroupCreateFail) self.signalsInterface.registerListener("group_gotInfo", self.onGroupGotInfo) self.signalsInterface.registerListener("group_addParticipantsSuccess", self.onGroupAddParticipantsSuccess) self.cm = connectionManager self.url = os.getenv('SERVER_URL', 'http://localhost:3000') self.post_headers = {'Content-type': 'application/json', 'Accept': 'application/json'} self.done = False
def __init__(self, phoneNumber, keepAlive = False, sendReceipts = False): self.sendReceipts = sendReceipts self.phoneNumber = phoneNumber self.jid = "*****@*****.**" % phoneNumber self.sentCache = {} connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("presence_updated", self.onPresenceUpdated) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.commandMappings = {"lastseen":lambda: self.methodsInterface.call("presence_request", ( self.jid,)), "available": lambda: self.methodsInterface.call("presence_sendAvailable"), "unavailable": lambda: self.methodsInterface.call("presence_sendUnavailable"), "crypt": None, "close": None } self.done = False #signalsInterface.registerListener("receipt_messageDelivered", lambda jid, messageId: methodsInterface.call("delivered_ack", (jid, messageId))) #for encrypted communication self.decrRcvMsgKey = myRsa().create() #generate my rsa keys self.encrSendMsgKey = None self.encrProtocolStatus = 0 # 1: request made, 2:request arrived, 3: com. is encrypted
def inicia_whatsapp(): #Se hacen publicas las variables de la conexion global y global signalsInterface global methodsInterface global contador global vaciado_mensajes_offline y = YowsupConnectionManager() y.setAutoPong(True) #Responder a los ping que hagan signalsInterface = y.getSignalsInterface() #Se recibiran las senales methodsInterface = y.getMethodsInterface() #Se utilizaran los metodos signalsInterface.registerListener("message_received", onMessageReceived) signalsInterface.registerListener("receipt_messageSent", onMessageSent) signalsInterface.registerListener("receipt_messageDelivered", onMessageDelivered) signalsInterface.registerListener("auth_success", onAuthSuccess) signalsInterface.registerListener("ping", onPing) signalsInterface.registerListener("disconnected", onDisconnected) methodsInterface.call("auth_login", (username, password)) methodsInterface.call("ready") #Leer todos los mensajes offline y no analizarlos contador = 0 vaciado_mensajes_offline = False while (contador<10): #Contador se pondra a cero cada vez que salta la interrupcion de un mensaje contador += 1 time.sleep(0.1) #Cuando sale del while ha pasado 1 segundo sin recibir mensajes vaciado_mensajes_offline = True #Aqui ponemos nuestro numero de movil principal para que abrá una conversación como que la pi está operativa methodsInterface.call("message_send", ("*****@*****.**", 'Reset'))
def __init__(self, phoneNumber, keepAlive=False, sendReceipts=False): self.sendReceipts = sendReceipts self.phoneNumber = phoneNumber self.jid = "*****@*****.**" % phoneNumber self.myjid = "" self.sentCache = {} WhatsappCmdClient.lvMessage = [] self.connectionManager = YowsupConnectionManager(False) self.connectionManager.setAutoPong(keepAlive) self.signalsInterface = self.connectionManager.getSignalsInterface() self.methodsInterface = self.connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("presence_updated", self.onPresenceUpdated) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("profile_setPictureSuccess", self.onPictureSuccess) self.signalsInterface.registerListener("profile_setPictureError", self.onPictureError) self.signalsInterface.registerListener("contact_gotProfilePicture", self.onProfilePicture), self.signalsInterface.registerListener("profile_setStatusSuccess", self.onStatusSuccess)
def __init__(self): self.sendReceipts = True self.groupMembership = {} self.groupParticipants = {} connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(True) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("group_messageReceived", self.onGroupMessageReceived) self.signalsInterface.registerListener("group_subjectReceived", self.onGroupSubjectReceived) self.signalsInterface.registerListener("group_gotInfo", self.onGroupGotInfo) self.signalsInterface.registerListener("group_gotParticipants", self.onGroupGotParticipants) self.signalsInterface.registerListener("group_imageReceived", self.onGroupImageReceived) self.signalsInterface.registerListener("group_videoReceived", self.onGroupVideoReceived) self.signalsInterface.registerListener("group_audioReceived", self.onGroupAudioReceived) self.signalsInterface.registerListener("group_locationReceived", self.onGroupLocationReceived) self.signalsInterface.registerListener("group_vcardReceived", self.onGroupVcardReceived) self.signalsInterface.registerListener("notification_groupParticipantRemoved", self.onNotificationGroupParticipantRemoved) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.cm = connectionManager
def __init__(self, keepAlive = True, sendReceipts = True): self.sendReceipts = sendReceipts connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("message_error", self.onError) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("receipt_messageDelivered", self.onMessageDelivered) self.signalsInterface.registerListener("image_received", self.onImageReceived) self.cm = connectionManager self.message_queue = Queue() self.image_queue = Queue() self.reply_dic = {} self.running = True
class LibInterfaceHandler(InterfaceHandlerBase): def __init__(self, username): self.connectionManager = YowsupConnectionManager() self.connectionManager.setAutoPong(True) self.signalInterface = self.connectionManager.getSignalsInterface() self.methodInterface = self.connectionManager.getMethodsInterface() super(LibInterfaceHandler, self).__init__() self.initSignals() self.initMethods() def initSignals(self): self.signals = self.signalInterface.getSignals() def initMethods(self): #get methods self.methods = self.methodInterface.getMethods() def connectToSignal(self, signalName, callback): if not self.isSignal(signalName): raise InvalidSignalException() self.signalInterface.registerListener(signalName, callback) def call(self, methodName, params=()): if not self.isMethod(methodName): raise InvalidMethodException() return self.methodInterface.call(methodName, params)
def __init__(self, keepAlive=False, sendReceipts=False, dryRun=False): self.sendReceipts = sendReceipts self.dryRun = dryRun # Initialize connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() # Configure the listeners self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("group_messageReceived", self.onGroupMessageReceived) self.signalsInterface.registerListener("image_received", self.onImageReceived) self.signalsInterface.registerListener("group_imageReceived", self.onGroupImageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) # Create a printqueue so we won't print two things at the same time self.queue = Queue.PriorityQueue() self.history = [] #List of timestamp, action, item self.printer = None self.last_sender = None self.connected = False
def __init__(self, username, password, msg_handler, stopped_handler): threading.Thread.__init__(self) self.connected = False self.must_run = True self.msg_handler = msg_handler self.stopped_handler = stopped_handler self.username = username self.password = base64.b64decode(password) self.cm = YowsupConnectionManager() self.cm.setAutoPong(True) self.signalsInterface = self.cm.getSignalsInterface() self.methodsInterface = self.cm.getMethodsInterface() self.signalsInterface.registerListener("notification_groupPictureUpdated", self.onGroup_PictureUpdated) self.signalsInterface.registerListener("group_gotPicture", self.onGroup_PictureGot) self.signalsInterface.registerListener("group_imageReceived", self.onGroup_ImageReceived) self.signalsInterface.registerListener("image_received", self.onImageReceived) self.signalsInterface.registerListener("group_videoReceived", self.onGroup_VideoReceived) self.signalsInterface.registerListener("videoimage_received", self.onVideoReceived) self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("group_messageReceived", self.onGroup_MessageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("receipt_messageDelivered", self.onMessageDelivered) self.signalsInterface.registerListener("ping", self.onPing)
def __init__(self, config, keepAlive=False, sendReceipts=False, dryRun=False): self.sendReceipts = sendReceipts self.dryRun = dryRun self.config = config # Initialize connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() # Configure the listeners self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("presence_updated", self.onPresenceUpdated) self.signalsInterface.registerListener("presence_available", self.onPresenceAvailable) self.signalsInterface.registerListener("presence_unavailable", self.onPresenceUnavailable) # Create a queue so we can stash the incoming data somewhere self.events = Queue.PriorityQueue() # Dictionary of contacts with their names self.names = dict(config['jids']) self.contacts = [jid for jid, name in config['jids']] # A count of events for each interval for each contact self.tally = defaultdict(lambda: dict((jid, 0) for jid in self.contacts)) self.printer = None self.connected = False self.lastline, self.nextline = findInterval(LINE_INTERVAL) self.nth = 0
def __init__(self, sendReceipts = True, timeout = 5): """ __init__""" self.timeout = timeout self.done = False self.path = "" self.gotMediaReceipt = False connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(True) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) # self.signalsInterface.registerListener("profile_setPictureSuccess", self.onSetPictureSuccess) # self.signalsInterface.registerListener("profile_setPictureError", self.onSetPictureError) # self.signalsInterface.registerListener("profile_setStatusSuccess", self.onSetStatusSuccess) # self.signalsInterface.registerListener("presence_updated", self.onPresenceUpdated) # self.signalsInterface.registerListener("presence_available", self.onPresenceAvailable) # self.signalsInterface.registerListener("presence_unavailable", self.onPresenceUnavailable) self.signalsInterface.registerListener("media_uploadRequestSuccess", self.onMediaUploadRequestSuccess) self.signalsInterface.registerListener("media_uploadRequestFailed", self.onMediaUploadRequestFailure) self.signalsInterface.registerListener("media_uploadRequestDuplicate", self.onMediaUploadRequestDuplicate)
def __init__(self, phoneNumber, message, waitForReceipt=False): if '-' in phoneNumber: self.jid = "*****@*****.**" % phoneNumber else: self.jid = "*****@*****.**" % phoneNumber self.message = message self.waitForReceipt = waitForReceipt connectionManager = YowsupConnectionManager() self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) if waitForReceipt: self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.gotReceipt = False self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.done = False
def __init__(self, url, keepAlive = False, sendReceipts = False): super(Server, self).__init__() self.sendReceipts = sendReceipts self.keepAlive = keepAlive self.db = create_engine(url, echo=False, pool_size=10, pool_timeout=600,pool_recycle=300) self.Session = sessionmaker(bind=self.db) self.s = self.Session() self.job = None self.pubnub = Pubnub(os.environ['PUB_KEY'], os.environ['SUB_KEY'], None, False) self.timeout = int(os.getenv('TIMEOUT', 3600)) connectionManager = YowsupConnectionManager(self.timeout) connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("group_messageReceived", self.onGroupMessageReceived) self.signalsInterface.registerListener("image_received", self.onImageReceived) self.signalsInterface.registerListener("video_received", self.onVideoReceived) self.signalsInterface.registerListener("audio_received", self.onAudioReceived) self.signalsInterface.registerListener("vcard_received", self.onVCardReceived) self.signalsInterface.registerListener("location_received", self.onLocationReceived) self.signalsInterface.registerListener("receipt_messageSent", self.onReceiptMessageSent) self.signalsInterface.registerListener("receipt_messageDelivered", self.onReceiptMessageDelivered) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("contact_gotProfilePicture", self.onGotProfilePicture) self.signalsInterface.registerListener("profile_setStatusSuccess", self.onSetStatusSuccess) self.signalsInterface.registerListener("group_createSuccess", self.onGroupCreateSuccess) self.signalsInterface.registerListener("group_createFail", self.onGroupCreateFail) self.signalsInterface.registerListener("group_gotInfo", self.onGroupGotInfo) self.signalsInterface.registerListener("group_addParticipantsSuccess", self.onGroupAddParticipantsSuccess) self.signalsInterface.registerListener("group_removeParticipantsSuccess", self.onGroupRemoveParticipantsSuccess) self.signalsInterface.registerListener("group_imageReceived", self.onGroupImageReceived) self.signalsInterface.registerListener("group_subjectReceived", self.onGroupSubjectReceived) self.signalsInterface.registerListener("notification_removedFromGroup", self.onNotificationRemovedFromGroup) self.signalsInterface.registerListener("notification_groupParticipantAdded", self.onNotificationGroupParticipantAdded) self.signalsInterface.registerListener("group_gotParticipants", self.onGotGroupParticipants) self.signalsInterface.registerListener("media_uploadRequestSuccess", self.onUploadRequestSuccess) # self.signalsInterface.registerListener("media_uploadRequestFailed", self.onUploadRequestFailed) self.signalsInterface.registerListener("media_uploadRequestDuplicate", self.onUploadRequestDuplicate) self.signalsInterface.registerListener("presence_available", self.onPresenceAvailable) self.signalsInterface.registerListener("presence_unavailable", self.onPresenceUnavailable) self.cm = connectionManager self.url = os.environ['URL'] self.post_headers = {'Content-type': 'application/json', 'Accept': 'application/json'} self.done = False
def __init__(self, phoneNumber, keepAlive = False, sendReceipts = False): self.sendReceipts = sendReceipts self.phoneNumber = phoneNumber self.jid = "*****@*****.**" % phoneNumber self.sentCache = {} connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("presence_updated", self.onPresenceUpdated) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.commandMappings = {"lastseen":lambda: self.methodsInterface.call("presence_request", ( self.jid,)), "available": lambda: self.methodsInterface.call("presence_sendAvailable"), "unavailable": lambda: self.methodsInterface.call("presence_sendUnavailable") } self.done = False
class LibInterfaceHandler(InterfaceHandlerBase): def __init__(self, username): self.connectionManager = YowsupConnectionManager() self.connectionManager.setAutoPong(True) self.signalInterface = self.connectionManager.getSignalsInterface() self.methodInterface = self.connectionManager.getMethodsInterface() super(LibInterfaceHandler,self).__init__(); self.initSignals() self.initMethods() def initSignals(self): self.signals = self.signalInterface.getSignals() def initMethods(self): #get methods self.methods = self.methodInterface.getMethods() def connectToSignal(self, signalName, callback): if not self.isSignal(signalName): raise InvalidSignalException() self.signalInterface.registerListener(signalName, callback) def call(self, methodName, params = ()): if not self.isMethod(methodName): raise InvalidMethodException() return self.methodInterface.call(methodName, params)
def __init__(self, phoneNumber): self.sendReceipts = True self.phoneNumber = phoneNumber self.jid = "*****@*****.**" % phoneNumber self.sentCache = {} connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(True) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("presence_updated", self.onPresenceUpdated) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("sync_contactsReceived", self.onSyncContacts) self.signalsInterface.registerListener("sync_statusesReceived", self.onSyncStatuses) self.commandMappings = {"lastseen":lambda: self.methodsInterface.call("presence_request", ( self.jid,)), "available": lambda: self.methodsInterface.call("presence_sendAvailable"), "unavailable": lambda: self.methodsInterface.call("presence_sendUnavailable"), "sync": lambda number: self.methodsInterface.call("sync_sendContacts", ([number],)), "status": lambda cjid: self.methodsInterface.call("sync_getStatuses", ([cjid],)) } self.done = False
def __init__(self, login, password): connectionManager = YowsupConnectionManager() self.signals = connectionManager.getSignalsInterface() self.methods = connectionManager.getMethodsInterface() self.signals.registerListener("auth_success", self.onAuthSuccess) self.signals.registerListener("auth_fail", self.onAuthFailed) self.login = login self.password = base64.b64decode(bytes(password.encode('utf-8'))) self.done = False
def __init__(self, username): self.connectionManager = YowsupConnectionManager() self.connectionManager.setAutoPong(True) self.signalInterface = self.connectionManager.getSignalsInterface() self.methodInterface = self.connectionManager.getMethodsInterface() super(LibInterfaceHandler, self).__init__() self.initSignals() self.initMethods()
def __init__(self, status): self.status=status connectionManager = YowsupConnectionManager() self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.done = False
def __init__(self, keepAlive = False, sendReceipts = True): self.sendReceipts = sendReceipts connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("group_messageReceived", self.onGroupMessageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("presence_updated", self.onPresence_updated) self.signalsInterface.registerListener("presence_available", self.onPresence_available) self.signalsInterface.registerListener("presence_unavailable", self.onPresence_unavailable) self.signalsInterface.registerListener("contact_gotProfilePicture", self.onContact_gotProfilePicture) self.signalsInterface.registerListener("profile_setStatusSuccess", self.onProfile_setStatusSuccess) self.signalsInterface.registerListener("status_dirty", self.onStatus_dirty) self.signalsInterface.registerListener("contact_gotProfilePictureId", self.onContact_gotProfilePictureId) self.signalsInterface.registerListener("contact_gotProfilePicture", self.onContact_gotProfilePicture) self.signalsInterface.registerListener("group_gotParticipants", self.onGroup_gotParticipants) self.cm = connectionManager self.db = MyZODB('Data/Data.fs') self.dbroot = self.db.dbroot if not self.dbroot.has_key("groups"): self.dbroot["groups"] = PersistentMapping() if not self.dbroot.has_key("messages"): self.dbroot["messages"] = PersistentMapping() if not self.dbroot.has_key("config"): self.dbroot["config"] = PersistentMapping() if not self.dbroot.has_key("features"): self.dbroot["features"] = PersistentMapping() if not self.dbroot.has_key("contacts"): self.dbroot["contacts"] = PersistentMapping() if not self.dbroot.has_key("chats"): self.dbroot['chats'] = PersistentMapping() if not self.dbroot['features'].has_key("responses"): self.dbroot['features']['responses'] = PersistentMapping() if not self.dbroot['features'].has_key("outbox"): self.dbroot['features']['outbox'] = PersistentList() self.outbox=self.dbroot['features']['outbox'] self.outboxempty=False self.outboxprocessing=False
def __init__(self, phone_number): connectionManager = YowsupConnectionManager() self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) # self.signalsInterface.registerListener("profile_setPictureSuccess", self.onSetProfilePicture) # self.signalsInterface.registerListener("profile_setPictureError", self.onSetProfilePictureError) self.signalsInterface.registerListener("contact_gotProfilePicture", self.onGotProfilePicture) # self.signalsInterface.registerListener("profile_setStatusSuccess", self.onSetStatusSuccess) self.phone_number = phone_number self.done = False
def __init__(self, keepAlive = False, sendReceipts = False): self.sendReceipts = sendReceipts connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.cm = connectionManager
def setup(self): #global cm, signals_interface, methods_interface Debugger.enabled = False self.cm = YowsupConnectionManager() self.cm.setAutoPong(True) self.signals_interface = self.cm.getSignalsInterface() self.methods_interface = self.cm.getMethodsInterface() self.signals_interface.registerListener('auth_success', self.cb_auth_success) self.signals_interface.registerListener('auth_fail', self.cb_auth_fail)
def __init__(self, target, waitForReceipt=True): self.jid = target jid = self.jid print(jid) connectionManager = YowsupConnectionManager() self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("contact_gotProfilePicture", self.onProfilePicture) self.signalsInterface.registerListener("disconnected", self.onDisconnected)
def __init__(self, phoneNumber, keepAlive=False, sendReceipts=False): self.ui = Gtk.Builder() #self.ui.set_translation_domain(APP_NAME) self.ui.add_from_file('Examples/window.ui') self.ui.connect_signals(self) self.window = self.ui.get_object('window') self.window.connect('destroy', self.stop_loop) self.messagesbuffer = self.ui.get_object('messagesbuffer') self.debugbuffer = self.ui.get_object('debugbuffer') self.messageentry = self.ui.get_object('messageentry') self.scrolleddebugwindow = self.ui.get_object('scrolleddebugwindow') self.autoscrollmenuitem = self.ui.get_object('autoscrollmenuitem') self.autoscrollbutton = self.ui.get_object('autoscrollbutton') self.chatlabel = self.ui.get_object('chatlabel') self.chatlabel.set_text('Chat with +%s' % phoneNumber) self.sendReceipts = sendReceipts self.phoneNumber = phoneNumber self.jid = "*****@*****.**" % phoneNumber self.sentCache = {} connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("presence_updated", self.onPresenceUpdated) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.commandMappings = {"lastseen": lambda: self.methodsInterface.call("presence_request", (self.jid,)), "available": lambda: self.methodsInterface.call("presence_sendAvailable"), "unavailable": lambda: self.methodsInterface.call("presence_sendUnavailable"), "quit": lambda: self.stop_loop() } self.done = False self.run_loop = True self.autoscroll = True self.window.show_all() prompt = self.getPrompt() + '\n' self.messagesbuffer.insert_at_cursor(prompt, len(prompt))
def __init__(self, phonenumber=None, password=None, autopong=True, reconnect_on_closed=True): ''' Constructor ''' self.__log = logging.getLogger(__name__) if phonenumber is None: self.__log.error("No phonenumber given.") return if password is None: self.__log.error("No password given.") return self.__reconnect_on_closed=reconnect_on_closed self.__phonenumber = phonenumber self.__password = self.__encode_password(password) self.__connection_manager = YowsupConnectionManager() self.__connection_manager.setAutoPong(autopong) self.signalInterface = self.__connection_manager.getSignalsInterface() self.methodInterface = self.__connection_manager.getMethodsInterface() self.__register_default_listeners()
def __init__(self): super(WhatsappClient, self).__init__() self._exit = False self._connection_manger = YowsupConnectionManager() self._connection_manger.setAutoPong(True) self._signals_interface = self._connection_manger.getSignalsInterface() self._methods_interface = self._connection_manger.getMethodsInterface() self._signals_interface.registerListener('auth_success', self._cb_auth_success) self._signals_interface.registerListener('auth_fail', self._cb_auth_fail) self._signals_interface.registerListener('message_received', self._cb_message_received) self._signals_interface.registerListener('disconnected', self._cb_disconnected) self._signals_interface.registerListener('receipt_messageSent', self._cb_message_sent) self._signals_interface.registerListener('receipt_messageDelivered', self._cb_message_delivered) self._signals_interface.registerListener('image_received', self._cb_image_received) self._signals_interface.registerListener('video_received', self._cb_video_received) self._signals_interface.registerListener('audio_received', self._cb_audio_received) self._signals_interface.registerListener('location_received', self._cb_location_received) self._signals_interface.registerListener('vcard_received', self._cb_vcard_received) self._presence_thread = threading.Thread(target=self._method_presence_send_available) self._presence_thread.daemon = True self.incoming = Queue.Queue() self.outgoing = Queue.Queue()
def __init__(self, username, password, stopped_handler): threading.Thread.__init__(self) self.beanstalk_send = beanstalkc.Connection(host='localhost', port=14711) self.beanstalk_recv = beanstalkc.Connection(host='localhost', port=14711) self.beanstalk_send.watch('send') self.beanstalk_recv.use('recv') self.connected = False self.must_run = True self.msg_handler = lambda x: self.beanstalk_recv.put(json.dumps(x)) self.stopped_handler = stopped_handler self.username = username self.password = base64.b64decode(password) self.cm = YowsupConnectionManager() self.cm.setAutoPong(True) self.signalsInterface = self.cm.getSignalsInterface() self.methodsInterface = self.cm.getMethodsInterface() self.signalsInterface.registerListener("notification_groupPictureUpdated", self.onGroup_PictureUpdated) self.signalsInterface.registerListener("group_gotPicture", self.onGroup_PictureGot) self.signalsInterface.registerListener("group_imageReceived", self.onGroup_ImageReceived) self.signalsInterface.registerListener("image_received", self.onImageReceived) self.signalsInterface.registerListener("group_videoReceived", self.onGroup_VideoReceived) self.signalsInterface.registerListener("videoimage_received", self.onVideoReceived) self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("group_messageReceived", self.onGroup_MessageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("receipt_messageDelivered", self.onMessageDelivered) self.signalsInterface.registerListener("ping", self.onPing)
def __init__(self,login,password,keepAlive=False,autoack=False): logging.info("bot created") self.sendReceipts = autoack self.username=login self.password=password self.stayon=True #self.setup() connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) dirs=["downloads","logs","modules","configs"] for folder in dirs: if not os.path.isdir(folder): print "missing directory %s. Creating it." % folder modules.misctools.mkdir_p(folder) self.clientsinfofile=os.path.join('configs','clientsinfo') try: with open(self.clientsinfofile,'r') as clientsinfofileobj: self.clientsinfo=json.load(clientsinfofileobj) print "loaded clients",self.clientsinfo except IOError: print "No client registered/talked to yet" self.clientsinfo={} self.adminfile=os.path.join('configs','admin') try: with open(self.adminfile,'r') as adminfileobj: self.admin=json.load(adminfileobj) print "admin is",self.admin except IOError: print "No admin set. please set by saving admin in configs/admin" self.admin="noneset" self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.signals.append("command") self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) for module in vars(modules).values(): if hasattr(module,"setup"): module.setup(self)
def startConnection(self): trace_start("trace.html") connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(True) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("ping", self.onPing) self.gotReceipt = 0 self.cm = connectionManager self.fileName="defaultFileName"
def __init__(self, username, password, boxClient, keepAlive = False, sendReceipts = False): connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.cm = connectionManager self.sendReceipts = sendReceipts self.username = username self.password = base64.b64decode(bytes(password.encode('utf-8'))) self.boxClient = boxClient self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected)
def __init__(self, user, passwd): self.con = YowsupConnectionManager() self.con.setAutoPong(True) self.signalsInterface = self.con.getSignalsInterface() self.methodsInterface = self.con.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("receipt_messageDelivered", self.onMessageDelivered) self.methodsInterface.call("auth_login", (user, base64.b64decode(passwd))) self.running = True
def __init__(self, backend, user, legacyName, extra, db): self.logger = logging.getLogger(self.__class__.__name__) self.logger.info("Created: %s", legacyName) self.db = db self.backend = backend self.user = user self.legacyName = legacyName self.status = protocol_pb2.STATUS_NONE self.statusMessage = '' self.groups = {} self.presenceRequested = [] self.offlineQueue = [] self.groupOfflineQueue = {} self.timer = None self.password = None self.initialized = False self.buddies = BuddyList(legacyName, db) self.frontend = YowsupConnectionManager() self.bot = Bot(self) # Events self.listen("auth_success", self.onAuthSuccess) self.listen("auth_fail", self.onAuthFailed) self.listen("disconnected", self.onDisconnected) self.listen("contact_typing", self.onContactTyping) self.listen("contact_paused", self.onContactPaused) self.listen("presence_updated", self.onPrecenceUpdated) self.listen("presence_available", self.onPrecenceAvailable) self.listen("presence_unavailable", self.onPrecenceUnavailable) self.listen("message_received", self.onMessageReceived) self.listen("image_received", self.onMediaReceived) self.listen("video_received", self.onMediaReceived) self.listen("audio_received", self.onMediaReceived) self.listen("location_received", self.onLocationReceived) self.listen("vcard_received", self.onVcardReceived) self.listen("group_messageReceived", self.onGroupMessageReceived) self.listen("group_gotInfo", self.onGroupGotInfo) self.listen("group_gotParticipants", self.onGroupGotParticipants) self.listen("group_subjectReceived", self.onGroupSubjectReceived) self.listen("notification_groupParticipantAdded", self.onGroupParticipantAdded) self.listen("notification_groupParticipantRemoved", self.onGroupParticipantRemoved) self.listen("notification_contactProfilePictureUpdated", self.onContactProfilePictureUpdated) self.listen("notification_groupPictureUpdated", self.onGroupPictureUpdated)
def __init__(self, phoneNumber, message, waitForReceipt=False): self.jid = "*****@*****.**" % phoneNumber self.message = message self.waitForReceipt = waitForReceipt connectionManager = YowsupConnectionManager() self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) if waitForReceipt: self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.gotReceipt = False self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.done = False
def __init__(self, keepAlive=False, sendReceipts=False): self.sendReceipts = sendReceipts self.keepAlive = keepAlive connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.cm = connectionManager self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener( "media_uploadRequestSuccess", self.onmedia_uploadRequestSuccess) self.signalsInterface.registerListener( "media_uploadRequestFailed", self.onmedia_uploadRequestFailed) self.signalsInterface.registerListener( "media_uploadRequestDuplicate", self.onmedia_uploadRequestDuplicate)
def __init__(self, app, keepAlive=False, sendReceipts=False): self.sendReceipts = sendReceipts self.app = app connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("image_received", self.onImageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("contact_gotProfilePicture", self.onGotProfilePicture) self.cm = connectionManager self.done = False
def __init__(self, keepAlive=False, sendReceipts=False): self.sendReceipts = sendReceipts self.redis = redis.Redis() self.queue_key = 'MESSAGES_LISTS' self.MODE_CONNECTED = 1 self.MODE_DISCONNECTED = 2 self.MODE_CONNECTING = 3 connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("receipt_messageDelivered", self.messageReceived) #self.signalsInterface.registerListener("receipt_messageDelivered", lambda jid, messageId: methodsInterface.call("delivered_ack", (jid, messageId))) self.cm = connectionManager
def __init__(self, phoneNumber, keepAlive=False, sendReceipts=False): self.sendReceipts = sendReceipts self.phoneNumber = phoneNumber self.jid = "*****@*****.**" % phoneNumber self.sentCache = {} connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("presence_updated", self.onPresenceUpdated) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.commandMappings = { "lastseen": lambda: self.methodsInterface.call("presence_request", (self.jid, )), "available": lambda: self.methodsInterface.call("presence_sendAvailable"), "unavailable": lambda: self.methodsInterface.call("presence_sendUnavailable") } self.done = False
def __init__(self): self.connectionManager = YowsupConnectionManager() self.connectionManager.setAutoPong(Config.keepAlive) self.signalsInterface = self.connectionManager.getSignalsInterface() self.methodsInterface = self.connectionManager.getMethodsInterface() self.yowsupRanOnce = 0 self.listener = None self.sender = None self.session = None self.httpRequestHandler = None self.instanceId = None self.status = Constants.INSTANCESTATUS_INITED self.dbi = DBI( ) #Use this for HTTP requests only. For every other case, Go ahead and create a different connection for now self.callbackDBI = CallbackDBI( ) #Extra care for preventing interference #self.dbiCursor = None self.yowsupStarted = 0
def setup(): global cm, signals_interface, methods_interface Debugger.enabled = False cm = YowsupConnectionManager() cm.setAutoPong(True) signals_interface = cm.getSignalsInterface() methods_interface = cm.getMethodsInterface() signals_interface.registerListener('auth_success', cb_auth_success) signals_interface.registerListener('auth_fail', cb_auth_fail) signals_interface.registerListener('disconnected', cb_disconnected)
def __init__(self, login, password, keepAlive=False, autoack=False): logging.info("bot created") self.sendReceipts = autoack self.username = login self.password = password self.stayon = True #self.setup() connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) dirs = ["downloads", "logs", "modules", "configs"] for folder in dirs: if not os.path.isdir(folder): print "missing directory %s. Creating it." % folder modules.misctools.mkdir_p(folder) self.clientsinfofile = os.path.join('configs', 'clientsinfo') try: with open(self.clientsinfofile, 'r') as clientsinfofileobj: self.clientsinfo = json.load(clientsinfofileobj) print "loaded clients", self.clientsinfo except IOError: print "No client registered/talked to yet" self.clientsinfo = {} self.adminfile = os.path.join('configs', 'admin') try: with open(self.adminfile, 'r') as adminfileobj: self.admin = json.load(adminfileobj) print "admin is", self.admin except IOError: print "No admin set. please set by saving admin in configs/admin" self.admin = "noneset" self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.signals.append("command") self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) for module in vars(modules).values(): if hasattr(module, "setup"): module.setup(self)
def __init__(self, keepAlive = True, sendReceipts = False): self.sendReceipts = sendReceipts connectionManager = YowsupConnectionManager() #connectionManager.setAutoPong(keepAlive) connectionManager.setAutoPong(True) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("group_messageReceived", self.group_messageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.cm = connectionManager
def __init__(self, phoneNumber): self.sendReceipts = True self.phoneNumber = phoneNumber self.jid = "*****@*****.**" % phoneNumber self.sentCache = {} connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(True) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("presence_updated", self.onPresenceUpdated) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("sync_contactsReceived", self.onSyncContacts) self.signalsInterface.registerListener("sync_statusesReceived", self.onSyncStatuses) self.commandMappings = { "lastseen": lambda: self.methodsInterface.call("presence_request", (self.jid, )), "available": lambda: self.methodsInterface.call("presence_sendAvailable"), "unavailable": lambda: self.methodsInterface.call("presence_sendUnavailable"), "sync": lambda number: self.methodsInterface.call("sync_sendContacts", ([number], )), "status": lambda cjid: self.methodsInterface.call("sync_getStatuses", ([cjid], )) } self.done = False
def __init__(self): self.sendReceipts = True self.groupMembership = {} self.groupParticipants = {} connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(True) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("group_messageReceived", self.onGroupMessageReceived) self.signalsInterface.registerListener("group_subjectReceived", self.onGroupSubjectReceived) self.signalsInterface.registerListener("group_gotInfo", self.onGroupGotInfo) self.signalsInterface.registerListener("group_gotParticipants", self.onGroupGotParticipants) self.signalsInterface.registerListener("group_imageReceived", self.onGroupImageReceived) self.signalsInterface.registerListener("group_videoReceived", self.onGroupVideoReceived) self.signalsInterface.registerListener("group_audioReceived", self.onGroupAudioReceived) self.signalsInterface.registerListener("group_locationReceived", self.onGroupLocationReceived) self.signalsInterface.registerListener("group_vcardReceived", self.onGroupVcardReceived) self.signalsInterface.registerListener( "notification_groupParticipantRemoved", self.onNotificationGroupParticipantRemoved) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.cm = connectionManager
def __init__(self, app, keepAlive=False, sendReceipts=False): self.sendReceipts = sendReceipts self.app = app connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("group_messageReceived", self.onGroupMessageReceived) self.signalsInterface.registerListener("image_received", self.onImageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("contact_gotProfilePicture", self.onGotProfilePicture) self.signalsInterface.registerListener("profile_setStatusSuccess", self.onSetStatusSuccess) self.signalsInterface.registerListener("group_createSuccess", self.onGroupCreateSuccess) self.signalsInterface.registerListener("group_createFail", self.onGroupCreateFail) self.signalsInterface.registerListener("group_gotInfo", self.onGroupGotInfo) self.signalsInterface.registerListener( "group_addParticipantsSuccess", self.onGroupAddParticipantsSuccess) self.cm = connectionManager self.url = os.getenv('SERVER_URL', 'http://localhost:3000') self.post_headers = { 'Content-type': 'application/json', 'Accept': 'application/json' } self.done = False
def setup(): global cm, signals_interface, methods_interface Debugger.enabled = False cm = YowsupConnectionManager() cm.setAutoPong(True) signals_interface = cm.getSignalsInterface() methods_interface = cm.getMethodsInterface() signals_interface.registerListener('auth_success', cb_auth_success) signals_interface.registerListener('auth_fail', cb_auth_fail) signals_interface.registerListener('contact_gotProfilePicture', cb_contact_gotProfilePicture) signals_interface.registerListener('receipt_messageSent', cb_message_sent) signals_interface.registerListener('receipt_messageDelivered', cb_message_delivered)
def setup(): Debugger.enabled = True global cm, signals_interface, methods_interface print 'Settng up environment' cm = YowsupConnectionManager() cm.setAutoPong(True) signals_interface = cm.getSignalsInterface() methods_interface = cm.getMethodsInterface() signals_interface.registerListener('auth_success', cb_auth_success) signals_interface.registerListener('auth_fail', cb_auth_fail) signals_interface.registerListener('contact_gotProfilePicture', cb_contact_gotProfilePicture) signals_interface.registerListener('receipt_messageSent', cb_message_sent) signals_interface.registerListener('receipt_messageDelivered', cb_message_delivered) # Presence signals_interface.registerListener('presence_updated', cb_presence_updated)
def __init__(self, admin_phone, keep_alive=False, send_receipts=False): self.send_receipts = send_receipts self.keep_alive = keep_alive self.admin_phone = admin_phone self.admin_jid = JID_BASE % admin_phone # Configure connection manager connection_manager = YowsupConnectionManager() connection_manager.setAutoPong(keep_alive) self.signals = connection_manager.getSignalsInterface() self.methods = connection_manager.getMethodsInterface() # Configure callbacks self.signals.registerListener("auth_success", self.on_auth_success) self.signals.registerListener("auth_fail", self.on_auth_failed) self.signals.registerListener("disconnected", self.on_disconnected) self.signals.registerListener("message_received", self.on_message_received) self.signals.registerListener("group_messageReceived", self.on_group_message_received) self.groups = {} self.creation_time = time.time() self.done = False
def __init__(self): super(WazappDesktop, self).__init__() Contacts.instance().contacts_updated_signal.connect(self.checkPresence) self.contact_status_changed_signal.connect(Contacts.instance().contactStatusChanged) self._hasUnreadMessage = False self._isOnline = False self._mainWindow = MainWindow() self.show = self._mainWindow.show self._mainWindow.send_message_signal.connect(self.do_send) self._mainWindow.has_unread_message_signal.connect(self.unreadMessage) self._systrayIcon = SystemTrayIcon() self._systrayIcon.quit_signal.connect(self.close) self._systrayIcon.quit_signal.connect(self._mainWindow.close) self._systrayIcon.toggle_main_window_signal.connect(self.toggleMainWindow) self.status_changed_signal.connect(self._systrayIcon.statusChanged) self.show_message_signal.connect(self._mainWindow.showMessage) self.message_status_changed_signal.connect(self._mainWindow.messageStatusChanged) self._ownJid = Contacts.instance().phoneToConversationId(getConfig('countryCode') + getConfig('phoneNumber')) connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(True) self._pictureDownloader = PictureDownloader(connectionManager, Contacts.instance()) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() for method, events in self.getEventBindings().iteritems(): for event in events: self.signalsInterface.registerListener(event, method) self.setOnline(False) self._login()
def __init__(self, user, password, phone): '''WhatsAppClient's constructor. Args: user (str): the local phone number. password (str): the WhatsApp password of 'user'. phone (str): the remote phone number. ''' super().__init__() self.user = user try: self.password = base64.b64decode(bytes(password.encode('utf-8'))) except base64.binascii.Error: # Lets Yowsup handle the error. self.password = bytes(password.encode('utf-8')) # Users are identified in WhatsApp by their phone number (plus the # code) followed by the domain '@s.whatsapp.net'. self.phone = phone + '@s.whatsapp.net' self.connected = False # Yowsup managers and signals setting up. connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(True) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener('auth_success', self.onAuthSuccess) self.signalsInterface.registerListener('auth_fail', self.onAuthFailed) self.signalsInterface.registerListener('message_received', self.onMessageReceived) self.signalsInterface.registerListener('image_received', self.onImageReceived) self.signalsInterface.registerListener('disconnected', self.onDisconnected)
def __init__(self, keepAlive=False, sendReceipts=True): self.sendReceipts = sendReceipts connectionManager = YowsupConnectionManager() connectionManager.setAutoPong(keepAlive) self.signalsInterface = connectionManager.getSignalsInterface() self.methodsInterface = connectionManager.getMethodsInterface() self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("group_messageReceived", self.onGroupMessageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("presence_updated", self.onPresence_updated) self.signalsInterface.registerListener("presence_available", self.onPresence_available) self.signalsInterface.registerListener("presence_unavailable", self.onPresence_unavailable) self.signalsInterface.registerListener( "contact_gotProfilePicture", self.onContact_gotProfilePicture) self.signalsInterface.registerListener("profile_setStatusSuccess", self.onProfile_setStatusSuccess) self.signalsInterface.registerListener("status_dirty", self.onStatus_dirty) self.signalsInterface.registerListener( "contact_gotProfilePictureId", self.onContact_gotProfilePictureId) self.signalsInterface.registerListener( "contact_gotProfilePicture", self.onContact_gotProfilePicture) self.signalsInterface.registerListener("group_gotParticipants", self.onGroup_gotParticipants) self.cm = connectionManager self.db = MyZODB('Data/Data.fs') self.dbroot = self.db.dbroot if not self.dbroot.has_key("groups"): self.dbroot["groups"] = PersistentMapping() if not self.dbroot.has_key("messages"): self.dbroot["messages"] = PersistentMapping() if not self.dbroot.has_key("config"): self.dbroot["config"] = PersistentMapping() if not self.dbroot.has_key("features"): self.dbroot["features"] = PersistentMapping() if not self.dbroot.has_key("contacts"): self.dbroot["contacts"] = PersistentMapping() if not self.dbroot.has_key("chats"): self.dbroot['chats'] = PersistentMapping() if not self.dbroot['features'].has_key("responses"): self.dbroot['features']['responses'] = PersistentMapping() if not self.dbroot['features'].has_key("outbox"): self.dbroot['features']['outbox'] = PersistentList() self.outbox = self.dbroot['features']['outbox'] self.outboxempty = False self.outboxprocessing = False
class WAInterface(threading.Thread): def __init__(self, username, password, msg_handler, stopped_handler): threading.Thread.__init__(self) self.connected = False self.must_run = True self.msg_handler = msg_handler self.stopped_handler = stopped_handler self.username = username self.password = base64.b64decode(password) self.cm = YowsupConnectionManager() self.cm.setAutoPong(True) self.signalsInterface = self.cm.getSignalsInterface() self.methodsInterface = self.cm.getMethodsInterface() self.signalsInterface.registerListener("notification_groupPictureUpdated", self.onGroup_PictureUpdated) self.signalsInterface.registerListener("group_gotPicture", self.onGroup_PictureGot) self.signalsInterface.registerListener("group_imageReceived", self.onGroup_ImageReceived) self.signalsInterface.registerListener("image_received", self.onImageReceived) self.signalsInterface.registerListener("group_videoReceived", self.onGroup_VideoReceived) self.signalsInterface.registerListener("videoimage_received", self.onVideoReceived) self.signalsInterface.registerListener("message_received", self.onMessageReceived) self.signalsInterface.registerListener("group_messageReceived", self.onGroup_MessageReceived) self.signalsInterface.registerListener("auth_success", self.onAuthSuccess) self.signalsInterface.registerListener("auth_fail", self.onAuthFailed) self.signalsInterface.registerListener("disconnected", self.onDisconnected) self.signalsInterface.registerListener("receipt_messageSent", self.onMessageSent) self.signalsInterface.registerListener("receipt_messageDelivered", self.onMessageDelivered) self.signalsInterface.registerListener("ping", self.onPing) @catch_them_all def onMessageReceived(self, messageId, jid, messageContent, timestamp, wantsReceipt, pushName, isBroadcast): message = Message(kind="wa", nick_full=jid, chan=self.username, msg=messageContent) message.time = Timestamp(ms_int = timestamp*1000) self.msg_handler(message) sendReceipts = True if wantsReceipt and sendReceipts: self.wait_connected() self.methodsInterface.call("message_ack", (jid, messageId)) @catch_them_all def onImageReceived(self, messageId, jid, preview, url, size, receiptRequested): messageContent = unicode("[ image: %s ]"%url, "utf-8") message = Message(kind="wa", nick_full=jid, chan=self.username, msg=messageContent) self.msg_handler(message) sendReceipts = True if receiptRequested and sendReceipts: self.wait_connected() self.methodsInterface.call("message_ack", (jid, messageId)) @catch_them_all def onGroup_PictureUpdated(self, jid, author, timestamp, messageId, pictureId, receiptRequested): self.methodsInterface.call("group_getPicture", (jid,)) sendReceipts = True if receiptRequested and sendReceipts: self.wait_connected() self.methodsInterface.call("message_ack", (jid, messageId)) @catch_them_all def onGroup_PictureGot(self, jid, filePath): #TODO: upload filePath to services like imgur (or even upload as whatsapp picture, hah!) instead of displaying local file path here: messageContent = unicode("[ group picture: %s ]"%filePath, "utf-8") message = Message(kind="wa", nick_full="unknown", chan=jid, msg=messageContent) self.msg_handler(message) @catch_them_all def onGroup_ImageReceived(self, messageId, jid, author, preview, url, size, receiptRequested): messageContent = unicode("[ image: %s ]"%url, "utf-8") message = Message(kind="wa", nick_full=author, chan=jid, msg=messageContent) self.msg_handler(message) sendReceipts = True if receiptRequested and sendReceipts: self.wait_connected() self.methodsInterface.call("message_ack", (jid, messageId)) @catch_them_all def onVideoReceived(self, messageId, jid, preview, url, size, receiptRequested): messageContent = unicode("[ video: %s ]"%url, "utf-8") message = Message(kind="wa", nick_full=jid, chan=self.username, msg=messageContent) self.msg_handler(message) sendReceipts = True if receiptRequested and sendReceipts: self.wait_connected() self.methodsInterface.call("message_ack", (jid, messageId)) @catch_them_all def onGroup_VideoReceived(self, messageId, jid, author, preview, url, size, receiptRequested): messageContent = unicode("[ video: %s ]"%url, "utf-8") message = Message(kind="wa", nick_full=author, chan=jid, msg=messageContent) self.msg_handler(message) sendReceipts = True if receiptRequested and sendReceipts: self.wait_connected() self.methodsInterface.call("message_ack", (jid, messageId)) @catch_them_all def onGroup_MessageReceived(self, messageId, jid, author, messageContent, timestamp, wantsReceipt, pushName): message = Message(kind="wa", nick_full=author, chan=jid, msg=messageContent) message.time = Timestamp(ms_int = timestamp*1000) self.msg_handler(message) sendReceipts = True if wantsReceipt and sendReceipts: self.wait_connected() self.methodsInterface.call("message_ack", (jid, messageId)) @catch_them_all def run(self): try: self.must_run = True self.methodsInterface.call("auth_login", (self.username, self.password)) self.wait_connected() while self.must_run: if not self.connected: self.methodsInterface.call("auth_login", (self.username, self.password)) time.sleep(0.5) #raw_input() finally: info("Main loop closing") self.connected = False self.stopped_handler() self.must_run = False def stop(self): self.must_run = False def send(self, target, text): self.wait_connected() self.methodsInterface.call("message_send", (target, text.encode("utf-8"))) info((" >>> WA %s: %s" %(target, text)).encode("utf-8")) @catch_them_all def onAuthSuccess(self, username): info("Connected WA client (%s)" %username) self.connected = True self.methodsInterface.call("ready") @catch_them_all def onAuthFailed(self, username, reason): info("Auth Failed: %s" %reason) self.connected = False @catch_them_all def onDisconnected(self, reason): info("Disconnected WA client (%s): %s" %(self.username, reason)) self.connected = False @catch_them_all def onMessageSent(self, jid, messageId): info("Message successfully sent to %s" % jid) @catch_them_all def onMessageDelivered(self, jid, messageId): info("Message successfully delivered to %s" %jid) self.wait_connected() self.methodsInterface.call("delivered_ack", (jid, messageId)) @catch_them_all def onPing(self, pingId): info("Pong! (%s)" %pingId) self.wait_connected() self.methodsInterface.call("pong", (pingId,)) def wait_connected(self): while not self.connected: if not self.must_run: raise Exception("bot does not intend to connect") time.sleep(0.1)