Fix tweepy.API.update_with_media
authorKatsunori SUZUI <kt@7kry.net>
Fri, 13 Jun 2014 09:00:02 +0000 (18:00 +0900)
committerKatsunori SUZUI <kt@7kry.net>
Fri, 13 Jun 2014 09:00:02 +0000 (18:00 +0900)
If filename is an instance of `unicode',
L.76 `` 'Content-Disposition: form-data; name="%s"; filename="%s"' % (form_field, filename) ''
must be unicode string.

Because of it, L. 803 `` body = '\r\n'.join(body) '' fails.

Therefore, I made `filename' designed to be percent-encoded str object
before formatting.

tweepy/api.py

index 9e3d64e6858e173c5110eb9ba0edff728f8c8ae5..921820882f71d4b6c75fa87d8faa4ab06306ddd1 100644 (file)
@@ -4,6 +4,7 @@
 
 import os
 import mimetypes
+import urllib
 
 from tweepy.binder import bind_api
 from tweepy.error import TweepError
@@ -788,6 +789,8 @@ class API(object):
         if file_type not in ['image/gif', 'image/jpeg', 'image/png']:
             raise TweepError('Invalid file type for image: %s' % file_type)
 
+        if isinstance(filename, unicode):
+          filename = urllib.quote(filename.encode("utf-8"))
 
 
         BOUNDARY = 'Tw3ePy'