Search code examples
python-3.xvisual-studiovisual-studio-2015yowsup

Running yowsup in Visual Studio


I have add a yowsup project in visual studio 2015. In command prompt I run it using yowsup-cli -demos, my question is how to run it from visual studio?


Solution

  • I have found the solution. First, create a run.py file on the one of sample application that you want to run (in the demos folder in yowsup project) in Visual Studio, and add a code on that file based on the sample application in yowsup wiki (use one of run.py code from the sample application). For example:

    from layer import EchoLayer
    from yowsup.layers                             import YowParallelLayer
    from yowsup.layers.auth                        import YowAuthenticationProtocolLayer
    from yowsup.layers.protocol_messages           import YowMessagesProtocolLayer
    from yowsup.layers.protocol_receipts           import YowReceiptProtocolLayer
    from yowsup.layers.protocol_acks               import YowAckProtocolLayer
    from yowsup.layers.network                     import YowNetworkLayer
    from yowsup.layers.coder                       import YowCoderLayer
    from yowsup.stacks import YowStack
    from yowsup.common import YowConstants
    from yowsup.layers import YowLayerEvent
    from yowsup.stacks import YowStack, YOWSUP_CORE_LAYERS
    from yowsup.layers.axolotl                     import AxolotlControlLayer, AxolotlSendLayer, AxolotlReceivelayer
    from yowsup.env import YowsupEnv
    
    
    CREDENTIALS = ("phone", "password") # replace with your phone and password
    
    if __name__==  "__main__":
        layers = (
            EchoLayer,
            YowParallelLayer([YowAuthenticationProtocolLayer, YowMessagesProtocolLayer, YowReceiptProtocolLayer,
                              YowAckProtocolLayer]),
            AxolotlControlLayer,
            YowParallelLayer((AxolotlSendLayer, AxolotlReceivelayer)),
        ) + YOWSUP_CORE_LAYERS
    
        stack = YowStack(layers)
        stack.setProp(YowAuthenticationProtocolLayer.PROP_CREDENTIALS, CREDENTIALS)         #setting credentials
        stack.setProp(YowNetworkLayer.PROP_ENDPOINT, YowConstants.ENDPOINTS[0])    #whatsapp server address
        stack.setProp(YowCoderLayer.PROP_DOMAIN, YowConstants.DOMAIN)              
        stack.setProp(YowCoderLayer.PROP_RESOURCE, YowsupEnv.getCurrent().getResource())          #info about us as WhatsApp client
    
        stack.broadcastEvent(YowLayerEvent(YowNetworkLayer.EVENT_STATE_CONNECT))   #sending the connect signal
    
        stack.loop() #this is the program mainloop
    

    Save it and then right click run.py -> Run with debugging.