From 43217a512c0827ac02d7a21994b3494e2b98d526 Mon Sep 17 00:00:00 2001 From: Jose Manuel Delicado Date: Thu, 5 Oct 2017 23:07:28 +0200 Subject: [PATCH] Add support for creating image descriptions --- twython/api.py | 13 +++++++++---- twython/endpoints.py | 10 +++++++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/twython/api.py b/twython/api.py index 2782168..dedf6c6 100644 --- a/twython/api.py +++ b/twython/api.py @@ -140,8 +140,11 @@ class Twython(EndpointsMixin, object): params = params or {} func = getattr(self.client, method) - params, files = _transparent_params(params) - + if type(params) is dict: + params, files = _transparent_params(params) + else: + params = params + files = list() requests_args = {} for k, v in self.client_args.items(): # Maybe this should be set as a class variable and only done once? @@ -199,8 +202,10 @@ class Twython(EndpointsMixin, object): else: content = response.json() except ValueError: - raise TwythonError('Response was not valid JSON. \ - Unable to decode.') + # Send the response as is for working with /media/metadata/create.json. + content = response.content + #raise TwythonError('Response was not valid JSON. \ + #Unable to decode.') return content diff --git a/twython/endpoints.py b/twython/endpoints.py index 95e33d2..3cd0205 100644 --- a/twython/endpoints.py +++ b/twython/endpoints.py @@ -22,7 +22,7 @@ from time import sleep #from StringIO import StringIO #except ImportError: #from io import StringIO - +import json from .advisory import TwythonDeprecationWarning @@ -238,6 +238,14 @@ class EndpointsMixin(object): return response + def set_description(self, **params): + """ Adds a description to an image. + Docs: there is no official documentation + """ + # This method only accepts strings, no dictionaries. + params = json.dumps(params) + return self.post("media/metadata/create", params=params) + def get_oembed_tweet(self, **params): """Returns information allowing the creation of an embedded representation of a Tweet on third party sites.