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
Example #2
0
    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
Example #3
0
    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
Example #4
0
    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, 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
Example #6
0
 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)
Example #7
0
    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
Example #8
0
    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)
Example #9
0
    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)
Example #10
0
 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
Example #11
0
    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()
Example #12
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)
Example #13
0
    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, 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)
Example #15
0
    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)
Example #16
0
	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
Example #17
0
    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
Example #18
0
 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
Example #19
0
    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
Example #20
0
    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
Example #21
0
    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
Example #22
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('contact_gotProfilePicture',
                                       cb_contact_gotProfilePicture)
    signals_interface.registerListener('receipt_messageSent', cb_message_sent)
    signals_interface.registerListener('receipt_messageDelivered',
                                       cb_message_delivered)
Example #23
0
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)
Example #24
0
    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
Example #25
0
    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
Example #26
0
    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)
Example #28
0
    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
Example #29
0
    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
Example #30
0
        raise
    finally:
        methodsInterface.call("message_ack", (jid, messageId))


##Audio receive and download
def onaudio_received(messageId, jid, url, size, receiptRequested, a):
    urllib.urlretrieve(url, messageId + ".acc")
    methodsInterface.call("message_ack", (jid, messageId))
    #avconv -i 1402571446-347.acc -ar 16000 out.flac
    #curl -X POST -H 'Content-Type:audio/x-flac; rate=16000' -T out.flac 'https://www.google.com/speech-api/v2/recognize?lang=es&maxresults=10&pfilter=0&key=AIzaSyCGRH-QgpLZyHy0SlIIJS30oolFCUXk5S0'


##Init Yowsup and Thermal Printer
t = Thermal(devid)
y = YowsupConnectionManager()
y.setAutoPong(True)
Debugger.enabled = False
methodsInterface = y.getMethodsInterface()
signalsInterface = y.getSignalsInterface()

##Regiter listeners
signalsInterface.registerListener("auth_success", onAuthSuccess)
signalsInterface.registerListener("message_received", onMessage)
signalsInterface.registerListener("disconnected", ondisconnected)
signalsInterface.registerListener("image_received", onimage_received)
signalsInterface.registerListener("audio_received", onaudio_received)
signalsInterface.registerListener("receipt_messageDelivered",
                                  onMessageDelivered)

##Auth