convert new direct messages to old direct messages format

This commit is contained in:
jvmaia 2018-09-24 02:25:23 -03:00
parent ccfffc4a16
commit 4f20ac5b36
2 changed files with 39 additions and 4 deletions

View file

@ -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

31
twython/utils.py Normal file
View file

@ -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