lc-at / kyros

Python wrapper for WhatsApp Web API websocket communication (based on https://github.com/sigalor/whatsapp-web-reveng)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Demo code does not work

theriseof9 opened this issue · comments

Tried running demo code

import asyncio
import logging
import pyqrcode
import kyros

logging.basicConfig()
logging.getLogger("kyros").setLevel(logging.WARNING)


async def main():
    whatsapp = await kyros.Client.create()
    qr_data, scanned = await whatsapp.qr_login()
    qr_code = pyqrcode.create(qr_data)
    print(qr_code.terminal(quiet_zone=1))

    try:
        await scanned
    except asyncio.TimeoutError:
        await whatsapp.shutdown()
        return

    # how to send a websocket message
    message = kyros.WebsocketMessage(None, ["query", "exist", "1234@c.us"])
    await whatsapp.websocket.send_message(message)

    # receive a websocket message
    print(await whatsapp.websocket.messages.get(message.tag))


if __name__ == "__main__":
    asyncio.run(main())

received error
ERROR:asyncio:Task exception was never retrieved future: <Task finished name='Task-4' coro=<WebsocketClient._start_receiver.<locals>.receiver() done, defined at C:\Users\Jerry\AppData\Local\Programs\Python\Python38\lib\site-packages\kyros\websocket.py:169> exception=AttributeError("'Queue' object has no attribute 'pop'")> Traceback (most recent call last): File "C:\Users\Jerry\AppData\Local\Programs\Python\Python38\lib\site-packages\kyros\websocket.py", line 179, in receiver raw_message = self.websocket.messages.pop() AttributeError: 'Queue' object has no attribute 'pop'

Resolved by changing websocket.py from pop() to get() and adding await