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 import warnings
from io import BytesIO from io import BytesIO
from time import sleep from time import sleep
from utils import old_format_direct_messages
#try: #try:
#from StringIO import StringIO #from StringIO import StringIO
#except ImportError: #except ImportError:
@ -198,7 +199,8 @@ class EndpointsMixin(object):
'command': 'INIT', 'command': 'INIT',
'media_type': media_type, 'media_type': media_type,
'total_bytes': size, 'total_bytes': size,
'media_category': media_category 'media_category': media_category,
'json': 'true'
} }
response_init = self.post(upload_url, params=params) response_init = self.post(upload_url, params=params)
media_id = response_init['media_id'] 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 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' get_direct_messages.iter_mode = 'id'
def get_sent_messages(self, **params): 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 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' get_sent_messages.iter_mode = 'id'
def get_direct_message(self, **params): 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 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): 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

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