diff --git a/twython/endpoints.py b/twython/endpoints.py index 673f185..ed9c64c 100644 --- a/twython/endpoints.py +++ b/twython/endpoints.py @@ -19,6 +19,7 @@ import os import warnings from io import BytesIO from time import sleep +from utils import old_format_direct_messages #try: #from StringIO import StringIO #except ImportError: @@ -198,7 +199,8 @@ class EndpointsMixin(object): 'command': 'INIT', 'media_type': media_type, 'total_bytes': size, - 'media_category': media_category + 'media_category': media_category, + 'json': 'true' } response_init = self.post(upload_url, params=params) media_id = response_init['media_id'] @@ -303,7 +305,9 @@ class EndpointsMixin(object): https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/get-messages """ - return self.get('direct_messages/events/list', params=params) + new_style_direct_messages = self.get('direct_messages/events/list', params=params)['events'] + old_style_direct_messages = old_format_direct_messages(new_style_direct_messages) + return old_style_direct_messages get_direct_messages.iter_mode = 'id' def get_sent_messages(self, **params): @@ -313,7 +317,7 @@ class EndpointsMixin(object): https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/get-sent-message """ - return self.get('direct_messages/events/list', params=params) + return self.get('direct_messages/events/list', params=params)['events'] get_sent_messages.iter_mode = 'id' def get_direct_message(self, **params): @@ -323,7 +327,7 @@ class EndpointsMixin(object): https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/get-message """ - return self.get('direct_messages/events/show', params=params) + return self.get('direct_messages/events/show', params=params)['events'] def destroy_direct_message(self, **params): """Destroys the direct message specified in the required ``id`` parameter diff --git a/twython/utils.py b/twython/utils.py new file mode 100644 index 0000000..42995d5 --- /dev/null +++ b/twython/utils.py @@ -0,0 +1,31 @@ +import time + +def old_format_direct_messages(new_direct_messages): + old_direct_messages = [] + for new_direct_message in new_direct_messages: + old_direct_message = {} + old_direct_message['id'] = int(new_direct_message['id']) + old_direct_message['id_str'] = new_direct_message['id'] + old_direct_message['text'] = new_direct_message['message_create']['message_data']['text'] + old_direct_message['sender_id'] = int(new_direct_message['message_create']['sender_id']) + old_direct_message['sender_id_str'] = new_direct_message['message_create']['sender_id'] + # todo complete user object - sender + old_direct_message['sender'] = { + 'id': old_direct_message['sender_id'], + 'id_str': old_direct_message['sender_id_str'] + } + # todo user sender screen name + old_direct_message['recipient_id'] = int(new_direct_message['message_create']['target']['recipient_id']) + old_direct_message['recipient_id_str'] = new_direct_message['message_create']['target']['recipient_id'] + # todo complete user recipient screen name + old_direct_message['recipient'] = { + 'id': old_direct_message['recipient_id'], + 'id_str': old_direct_message['recipient_id_str'] + } + old_direct_message['created_at'] = time.ctime(float(new_direct_message['created_timestamp'])) + old_direct_message['entities'] = new_direct_message['message_create']['message_data']['entities'] + + old_direct_messages.append(old_direct_message) + + return old_direct_messages +