jlguardi / yowsup

The python WhatsApp library
http://www.openwhatsapp.org
GNU General Public License v3.0
42 stars 23 forks source link

Error: integer is required #22

Closed yniv closed 8 years ago

yniv commented 8 years ago

Anyone got this error?... i'm getting this from time to time on specific message receiving

Traceback (most recent call last):
  File "/home/whatsapp_client/server.py", line 71, in <module>
    asyncore.loop()
  File "/usr/lib/python2.7/asyncore.py", line 216, in loop
    poll_fun(timeout, map)
  File "/usr/lib/python2.7/asyncore.py", line 156, in poll
    read(obj)
  File "/usr/lib/python2.7/asyncore.py", line 87, in read
    obj.handle_error()
  File "/usr/lib/python2.7/asyncore.py", line 83, in read
    obj.handle_read_event()
  File "/usr/lib/python2.7/asyncore.py", line 449, in handle_read_event
    self.handle_read()
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/network/layer.py", line 88, in handle_read
    self.receive(data)
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/network/layer.py", line 96, in receive
    self.toUpper(data)
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/__init__.py", line 75, in toUpper
    self.__upper.receive(data)
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/stanzaregulator/layer.py", line 29, in receive
    self.processReceived()
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/stanzaregulator/layer.py", line 49, in processReceived
    self.toUpper(oneMessageData)
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/__init__.py", line 75, in toUpper
    self.__upper.receive(data)
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/auth/layer_crypt.py", line 65, in receive
    self.toUpper(payload)
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/__init__.py", line 75, in toUpper
    self.__upper.receive(data)
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/layer.py", line 33, in receive
    node = self.reader.getProtocolTreeNode(data)
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/decoder.py", line 16, in getProtocolTreeNode
    return self.nextTreeInternal(data)
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/decoder.py", line 251, in nextTreeInternal
    nodeChildren = self.readList(read2, data)
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/decoder.py", line 275, in readList
    listx.append(self.nextTreeInternal(data))
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/decoder.py", line 267, in nextTreeInternal
    nodeData = "".join(map(chr, nodeData))
TypeError: an integer is required
jlguardi commented 8 years ago

@yniv append logs please.

harpreetrekhi commented 8 years ago

I am also getting the same error. I am trying to use home automation script prepared by mascal in the following link.

http://rpihome.blogspot.in/2015/01/using-whatsapp-for-home-automation.html

When trying to execute the python script I am getting the same above error. Here are the logs:

/home/pi/mascal/test.py(1)() -> import os, subprocess, yowsup, logging (Pdb) continue Traceback (most recent call last): File "/usr/lib/python2.7/pdb.py", line 1314, in main pdb._runscript(mainpyfile) File "/usr/lib/python2.7/pdb.py", line 1233, in _runscript self.run(statement) File "/usr/lib/python2.7/bdb.py", line 400, in run exec cmd in globals, locals File "", line 1, in File "test.py", line 1, in import os, subprocess, yowsup, logging File "wareceive.py", line 68, in start self.stack.loop(count=4) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/stacks/yowstack.py", line 195, in loop asyncore.loop(_args, *_kwargs) File "/usr/lib/python2.7/asyncore.py", line 220, in loop poll_fun(timeout, map) File "/usr/lib/python2.7/asyncore.py", line 156, in poll read(obj) File "/usr/lib/python2.7/asyncore.py", line 87, in read obj.handle_error() File "/usr/lib/python2.7/asyncore.py", line 83, in read obj.handle_read_event() File "/usr/lib/python2.7/asyncore.py", line 449, in handle_read_event self.handle_read() File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/network/layer.py", line 88, in handle_read self.receive(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/network/layer.py", line 96, in receive self.toUpper(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/init.py", line 75, in toUpper self.upper.receive(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/stanzaregulator/layer.py", line 29, in receive self.processReceived() File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/stanzaregulator/layer.py", line 49, in processReceived self.toUpper(oneMessageData) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/__init.py", line 75, in toUpper self.upper.receive(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/auth/layer_crypt.py", line 65, in receive self.toUpper(payload) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/__init.py", line 75, in toUpper self.__upper.receive(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/layer.py", line 33, in receive node = self.reader.getProtocolTreeNode(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/decoder.py", line 16, in getProtocolTreeNode return self.nextTreeInternal(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/decoder.py", line 251, in nextTreeInternal nodeChildren = self.readList(read2, data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/decoder.py", line 275, in readList listx.append(self.nextTreeInternal(data)) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/decoder.py", line 267, in nextTreeInternal nodeData = "".join(map(chr, nodeData)) TypeError: an integer is required Uncaught exception. Entering post mortem debugging Running 'cont' or 'step' will restart the program /usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/decoder.py(267)nextTreeInternal() -> nodeData = "".join(map(chr, nodeData)) (Pdb) cont Post mortem debugger finished. The test.py will be restarted /home/pi/mascal/test.py(1)() -> import os, subprocess, yowsup, logging (Pdb)

python test.py No handlers could be found for logger "yowsup.stacks.yowstack" Traceback (most recent call last): File "test.py", line 36, in stack.start() File "/home/pi/mascal/wareceive.py", line 68, in start self.stack.loop(count=4) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/stacks/yowstack.py", line 195, in loop asyncore.loop(_args, *_kwargs) File "/usr/lib/python2.7/asyncore.py", line 220, in loop poll_fun(timeout, map) File "/usr/lib/python2.7/asyncore.py", line 156, in poll read(obj) File "/usr/lib/python2.7/asyncore.py", line 87, in read obj.handle_error() File "/usr/lib/python2.7/asyncore.py", line 83, in read obj.handle_read_event() File "/usr/lib/python2.7/asyncore.py", line 449, in handle_read_event self.handle_read() File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/network/layer.py", line 88, in handle_read self.receive(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/network/layer.py", line 96, in receive self.toUpper(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/init.py", line 75, in toUpper self.upper.receive(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/stanzaregulator/layer.py", line 29, in receive self.processReceived() File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/stanzaregulator/layer.py", line 49, in processReceived self.toUpper(oneMessageData) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/__init.py", line 75, in toUpper self.upper.receive(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/auth/layer_crypt.py", line 65, in receive self.toUpper(payload) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/__init.py", line 75, in toUpper self.__upper.receive(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/layer.py", line 33, in receive node = self.reader.getProtocolTreeNode(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/decoder.py", line 16, in getProtocolTreeNode return self.nextTreeInternal(data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/decoder.py", line 251, in nextTreeInternal nodeChildren = self.readList(read2, data) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/decoder.py", line 275, in readList listx.append(self.nextTreeInternal(data)) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/coder/decoder.py", line 267, in nextTreeInternal nodeData = "".join(map(chr, nodeData)) TypeError: an integer is required

jlguardi commented 8 years ago

Try with latest code where coder and dictionary are updated.

chriso0710 commented 8 years ago

Same problem here with the latest master. Happens at irregular intervals and after a few minutes after starting a script for receiving messages. Debug Log is normal.

11:18:22 worker.1 | Traceback (most recent call last):
11:18:22 worker.1 |   File "run.py", line 46, in <module>
11:18:22 worker.1 |     stack.loop(timeout = 0.5, discrete = 0.5)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/stacks/yowstack.py", line 187, in loop
11:18:22 worker.1 |     asyncore.loop(*args, **kwargs)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/asyncore.py", line 216, in loop
11:18:22 worker.1 |     poll_fun(timeout, map)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/asyncore.py", line 156, in poll
11:18:22 worker.1 |     read(obj)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/asyncore.py", line 87, in read
11:18:22 worker.1 |     obj.handle_error()
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/asyncore.py", line 83, in read
11:18:22 worker.1 |     obj.handle_read_event()
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/asyncore.py", line 449, in handle_read_event
11:18:22 worker.1 |     self.handle_read()
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/layers/network/layer.py", line 102, in handle_read
11:18:22 worker.1 |     self.receive(data)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/layers/network/layer.py", line 110, in receive
11:18:22 worker.1 |     self.toUpper(data)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/layers/__init__.py", line 75, in toUpper
11:18:22 worker.1 |     self.__upper.receive(data)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/layers/stanzaregulator/layer.py", line 29, in receive
11:18:22 worker.1 |     self.processReceived()
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/layers/stanzaregulator/layer.py", line 49, in processReceived
11:18:22 worker.1 |     self.toUpper(oneMessageData)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/layers/__init__.py", line 75, in toUpper
11:18:22 worker.1 |     self.__upper.receive(data)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/layers/auth/layer_crypt.py", line 65, in receive
11:18:22 worker.1 |     self.toUpper(payload)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/layers/__init__.py", line 75, in toUpper
11:18:22 worker.1 |     self.__upper.receive(data)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/layers/coder/layer.py", line 33, in receive
11:18:22 worker.1 |     node = self.reader.getProtocolTreeNode(data)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/layers/coder/decoder.py", line 16, in getProtocolTreeNode
11:18:22 worker.1 |     return self.nextTreeInternal(data)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/layers/coder/decoder.py", line 252, in nextTreeInternal
11:18:22 worker.1 |     nodeChildren = self.readList(read2, data)
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/layers/coder/decoder.py", line 276, in readList
11:18:22 worker.1 |     listx.append(self.nextTreeInternal(data))
11:18:22 worker.1 |   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/yowsup/layers/coder/decoder.py", line 268, in nextTreeInternal
11:18:22 worker.1 |     nodeData = "".join(map(chr, nodeData))
11:18:22 worker.1 | TypeError: an integer is required
11:18:22 worker.1 | exited with code 1