jlguardi / yowsup

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

has type <type 'unicode'>, but expected one of: (<type 'str'>,) #47

Closed e0xify closed 8 years ago

e0xify commented 8 years ago
_mediauploader.py_      [ERROR][2016-04-05 11:33:28,426] Error occured at transfer u'https://mmi680.whatsapp.net/d/AvcL69zwaIMjBXC-ihiYvNLBQqEt_3O9AkfGu6kLtxFq.jpg' has type <type 'unicode'>, but expected one of: (<type 'str'>,)                                                                                                                                                                                                                                                                                                                                                                                                                       
Traceback (most recent call last):                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/protocol_media/mediauploader.py", line 138, in run                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
    self.successCallback(sourcePath, self.jid, result["url"])                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
  File "/home/scripts/wabot/test/whatsapp-bot-seed/src/utils/media_sender.py", line 91, in <lambda>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
    caption)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
  File "/home/scripts/wabot/test/whatsapp-bot-seed/src/utils/media_sender.py", line 110, in _do_send_file                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
    self.interface_layer.toLower(entity)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/__init__.py", line 79, in toLower                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
    self.__lower.send(data)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/__init__.py", line 192, in send                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
    s.send(data)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/__init__.py", line 130, in send                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
    send(entity)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/protocol_media/layer.py", line 37, in sendMessageEntity                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    self.entityToLower(entity)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/__init__.py", line 134, in entityToLower                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
    self.toLower(entity.toProtocolTreeNode())                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/__init__.py", line 79, in toLower                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
    self.__lower.send(data)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/axolotl/layer.py", line 122, in send                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
    self.handlePlaintextNode(node)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/axolotl/layer.py", line 190, in handlePlaintextNode                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
    messageData = self.serializeToProtobuf(node) if v2 else node.getChild("body").getData()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/axolotl/layer.py", line 502, in serializeToProtobuf                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
    return self.serializeMediaToProtobuf(node.getChild("media"))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/axolotl/layer.py", line 514, in serializeMediaToProtobuf                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
    return self.serializeImageToProtobuf(mediaNode)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
  File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/yowsup/layers/axolotl/layer.py", line 547, in serializeImageToProtobuf                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
    image_message.url = mediaNode["url"]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
  File "/usr/local/lib/python2.7/dist-packages/protobuf-3.0.0b2.post2-py2.7.egg/google/protobuf/internal/python_message.py", line 664, in field_setter                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
    new_value = type_checker.CheckValue(new_value)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
  File "/usr/local/lib/python2.7/dist-packages/protobuf-3.0.0b2.post2-py2.7.egg/google/protobuf/internal/type_checkers.py", line 108, in CheckValue                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
    raise TypeError(message)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
TypeError: u'https://mmi680.whatsapp.net/d/AvcL69zwaIMjBXC-ihiYvNLBQqEt_3O9AkfGu6kLtxFq.jpg' has type <type 'unicode'>, but expected one of: (<type 'str'>,)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
_server.py_     [ERROR][2016-04-05 11:33:29,035] Unexpected Exception: 'NoneType' object has no attribute 'getChild' 

any ideas?

freelo commented 8 years ago

Have you tried encoding the resulting url as ascii? (assuming there are no special chars in whatsapp's urls)

jlguardi commented 8 years ago

Update your code!! You are trying to encrypt media and it is not supported. In master code, media encryption is disabled internally and this error will be avoid.

Next time, please, post logs from "yowsup-cli demos -y -d" so I can try to reproduce.