Added create_metadata endpoint #460

Merged
jmdaweb merged 3 commits from master into master 2017-10-09 13:26:01 -07:00
2 changed files with 17 additions and 4 deletions

View file

@ -140,7 +140,11 @@ class Twython(EndpointsMixin, object):
params = params or {} params = params or {}
michaelhelmick commented 2017-10-09 08:56:10 -07:00 (Migrated from github.com)

Can you make this if isinstance(params, dict)

Can you make this `if isinstance(params, dict)`
func = getattr(self.client, method) func = getattr(self.client, method)
if isinstance(params, dict):
params, files = _transparent_params(params) params, files = _transparent_params(params)
else:
params = params
files = list()
requests_args = {} requests_args = {}
for k, v in self.client_args.items(): for k, v in self.client_args.items():
@ -192,13 +196,14 @@ class Twython(EndpointsMixin, object):
error_message, error_message,
michaelhelmick commented 2017-10-09 08:55:33 -07:00 (Migrated from github.com)

Can you make this line:

if response.content != '' (spaces around operator and single quotes

Can you make this line: `if response.content != ''` (spaces around operator and single quotes
michaelhelmick commented 2017-10-09 08:55:55 -07:00 (Migrated from github.com)

content = '' Space around operators and single quotes

`content = ''` Space around operators and single quotes
error_code=response.status_code, error_code=response.status_code,
retry_after=response.headers.get('X-Rate-Limit-Reset')) retry_after=response.headers.get('X-Rate-Limit-Reset'))
content = ''
try: try:
if response.status_code == 204: if response.status_code == 204:
content = response.content content = response.content
else: else:
content = response.json() content = response.json()
except ValueError: except ValueError:
if response.content != '':
raise TwythonError('Response was not valid JSON. \ raise TwythonError('Response was not valid JSON. \
Unable to decode.') Unable to decode.')

View file

@ -14,6 +14,7 @@ This map is organized the order functions are documented at:
https://dev.twitter.com/docs/api/1.1 https://dev.twitter.com/docs/api/1.1
""" """
import json
import os import os
import warnings import warnings
from io import BytesIO from io import BytesIO
@ -150,6 +151,13 @@ class EndpointsMixin(object):
return self.post('https://upload.twitter.com/1.1/media/upload.json', params=params) return self.post('https://upload.twitter.com/1.1/media/upload.json', params=params)
def create_metadata(self, **params):
""" Adds metadata to a media element, such as image descriptions for visually impaired.
Docs: https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-metadata-create
"""
params = json.dumps(params)
return self.post("https://upload.twitter.com/1.1/media/metadata/create.json", params=params)
def upload_video(self, media, media_type, media_category=None, size=None, check_progress=False): def upload_video(self, media, media_type, media_category=None, size=None, check_progress=False):
"""Uploads video file to Twitter servers in chunks. The file will be available to be attached """Uploads video file to Twitter servers in chunks. The file will be available to be attached
to a status for 60 minutes. To attach to a update, pass a list of returned media ids to a status for 60 minutes. To attach to a update, pass a list of returned media ids