Added new endpoints for direct messages
This commit is contained in:
parent
c9e8a46200
commit
36fda7ac02
2 changed files with 21 additions and 13 deletions
|
|
@ -135,13 +135,13 @@ class Twython(EndpointsMixin, object):
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return '<Twython: %s>' % (self.app_key)
|
return '<Twython: %s>' % (self.app_key)
|
||||||
|
|
||||||
def _request(self, url, method='GET', params=None, api_call=None):
|
def _request(self, url, method='GET', params=None, api_call=None, json_encoded=False):
|
||||||
"""Internal request method"""
|
"""Internal request method"""
|
||||||
method = method.lower()
|
method = method.lower()
|
||||||
params = params or {}
|
params = params or {}
|
||||||
|
|
||||||
func = getattr(self.client, method)
|
func = getattr(self.client, method)
|
||||||
if isinstance(params, dict):
|
if isinstance(params, dict) and json_encoded == False:
|
||||||
params, files = _transparent_params(params)
|
params, files = _transparent_params(params)
|
||||||
else:
|
else:
|
||||||
params = params
|
params = params
|
||||||
|
|
@ -156,8 +156,13 @@ class Twython(EndpointsMixin, object):
|
||||||
if method == 'get':
|
if method == 'get':
|
||||||
requests_args['params'] = params
|
requests_args['params'] = params
|
||||||
else:
|
else:
|
||||||
|
# Check for json_encoded so we will sent params as "data" or "json"
|
||||||
|
if json_encoded:
|
||||||
|
data_key = "json"
|
||||||
|
else:
|
||||||
|
data_key = "data"
|
||||||
requests_args.update({
|
requests_args.update({
|
||||||
'data': params,
|
data_key: params,
|
||||||
'files': files,
|
'files': files,
|
||||||
})
|
})
|
||||||
try:
|
try:
|
||||||
|
|
@ -230,7 +235,7 @@ class Twython(EndpointsMixin, object):
|
||||||
|
|
||||||
return error_message
|
return error_message
|
||||||
|
|
||||||
def request(self, endpoint, method='GET', params=None, version='1.1'):
|
def request(self, endpoint, method='GET', params=None, version='1.1', json_encoded=False):
|
||||||
"""Return dict of response received from Twitter's API
|
"""Return dict of response received from Twitter's API
|
||||||
|
|
||||||
:param endpoint: (required) Full url or Twitter API endpoint
|
:param endpoint: (required) Full url or Twitter API endpoint
|
||||||
|
|
@ -246,6 +251,9 @@ class Twython(EndpointsMixin, object):
|
||||||
:param version: (optional) Twitter API version to access
|
:param version: (optional) Twitter API version to access
|
||||||
(default 1.1)
|
(default 1.1)
|
||||||
:type version: string
|
:type version: string
|
||||||
|
:param json_encoded: (optional) Flag to indicate if this method should send data encoded as json
|
||||||
|
(default False)
|
||||||
|
:type json_encoded: bool
|
||||||
|
|
||||||
:rtype: dict
|
:rtype: dict
|
||||||
"""
|
"""
|
||||||
|
|
@ -261,7 +269,7 @@ class Twython(EndpointsMixin, object):
|
||||||
url = '%s/%s.json' % (self.api_url % version, endpoint)
|
url = '%s/%s.json' % (self.api_url % version, endpoint)
|
||||||
|
|
||||||
content = self._request(url, method=method, params=params,
|
content = self._request(url, method=method, params=params,
|
||||||
api_call=url)
|
api_call=url, json_encoded=json_encoded)
|
||||||
|
|
||||||
return content
|
return content
|
||||||
|
|
||||||
|
|
@ -269,9 +277,9 @@ class Twython(EndpointsMixin, object):
|
||||||
"""Shortcut for GET requests via :class:`request`"""
|
"""Shortcut for GET requests via :class:`request`"""
|
||||||
return self.request(endpoint, params=params, version=version)
|
return self.request(endpoint, params=params, version=version)
|
||||||
|
|
||||||
def post(self, endpoint, params=None, version='1.1'):
|
def post(self, endpoint, params=None, version='1.1', json_encoded=False):
|
||||||
"""Shortcut for POST requests via :class:`request`"""
|
"""Shortcut for POST requests via :class:`request`"""
|
||||||
return self.request(endpoint, 'POST', params=params, version=version)
|
return self.request(endpoint, 'POST', params=params, version=version, json_encoded=json_encoded)
|
||||||
|
|
||||||
def get_lastfunction_header(self, header, default_return_value=None):
|
def get_lastfunction_header(self, header, default_return_value=None):
|
||||||
"""Returns a specific header from the last API call
|
"""Returns a specific header from the last API call
|
||||||
|
|
|
||||||
|
|
@ -300,10 +300,10 @@ class EndpointsMixin(object):
|
||||||
"""Returns the 20 most recent direct messages sent to the authenticating user.
|
"""Returns the 20 most recent direct messages sent to the authenticating user.
|
||||||
|
|
||||||
Docs:
|
Docs:
|
||||||
https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/get-messages
|
https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/list-events
|
||||||
|
|
||||||
"""
|
"""
|
||||||
return self.get('direct_messages', params=params)
|
return self.get('direct_messages/events/list', params=params)
|
||||||
get_direct_messages.iter_mode = 'id'
|
get_direct_messages.iter_mode = 'id'
|
||||||
|
|
||||||
def get_sent_messages(self, **params):
|
def get_sent_messages(self, **params):
|
||||||
|
|
@ -320,10 +320,10 @@ class EndpointsMixin(object):
|
||||||
"""Returns a single direct message, specified by an ``id`` parameter.
|
"""Returns a single direct message, specified by an ``id`` parameter.
|
||||||
|
|
||||||
Docs:
|
Docs:
|
||||||
https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/get-message
|
https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/get-event
|
||||||
|
|
||||||
"""
|
"""
|
||||||
return self.get('direct_messages/show', params=params)
|
return self.get('direct_messages/events/show', params=params)
|
||||||
|
|
||||||
def destroy_direct_message(self, **params):
|
def destroy_direct_message(self, **params):
|
||||||
"""Destroys the direct message specified in the required ``id`` parameter
|
"""Destroys the direct message specified in the required ``id`` parameter
|
||||||
|
|
@ -339,10 +339,10 @@ class EndpointsMixin(object):
|
||||||
authenticating user.
|
authenticating user.
|
||||||
|
|
||||||
Docs:
|
Docs:
|
||||||
https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/new-message
|
https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/new-event
|
||||||
|
|
||||||
"""
|
"""
|
||||||
return self.post('direct_messages/new', params=params)
|
return self.post('direct_messages/events/new', params=params, json_encoded=True)
|
||||||
|
|
||||||
# Friends & Followers
|
# Friends & Followers
|
||||||
def get_user_ids_of_blocked_retweets(self, **params):
|
def get_user_ids_of_blocked_retweets(self, **params):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue