ID Unpacking

This commit is contained in:
Lorenz Diener 2017-11-22 10:26:44 +01:00
pare 1c13794760
commit 8987590545

Veure arxiu

@ -244,6 +244,12 @@ class Mastodon:
Returns a list of toot dicts. Returns a list of toot dicts.
""" """
if max_id != None:
max_id = self.__unpack_id(max_id)
if since_id != None:
since_id = self.__unpack_id(since_id)
params_initial = locals() params_initial = locals()
if timeline == "local": if timeline == "local":
@ -289,6 +295,12 @@ class Mastodon:
Returns a list of toot dicts. Returns a list of toot dicts.
""" """
if max_id != None:
max_id = self.__unpack_id(max_id)
if since_id != None:
since_id = self.__unpack_id(since_id)
params_initial = locals() params_initial = locals()
if local == False: if local == False:
@ -308,6 +320,7 @@ class Mastodon:
Returns a toot dict. Returns a toot dict.
""" """
id = self.__unpack_id(id)
url = '/api/v1/statuses/{0}'.format(str(id)) url = '/api/v1/statuses/{0}'.format(str(id))
return self.__api_request('GET', url) return self.__api_request('GET', url)
@ -318,6 +331,7 @@ class Mastodon:
Returns a card dict. Returns a card dict.
""" """
id = self.__unpack_id(id)
url = '/api/v1/statuses/{0}/card'.format(str(id)) url = '/api/v1/statuses/{0}/card'.format(str(id))
return self.__api_request('GET', url) return self.__api_request('GET', url)
@ -327,6 +341,7 @@ class Mastodon:
Returns a context dict. Returns a context dict.
""" """
id = self.__unpack_id(id)
url = '/api/v1/statuses/{0}/context'.format(str(id)) url = '/api/v1/statuses/{0}/context'.format(str(id))
return self.__api_request('GET', url) return self.__api_request('GET', url)
@ -336,6 +351,7 @@ class Mastodon:
Returns a list of user dicts. Returns a list of user dicts.
""" """
id = self.__unpack_id(id)
url = '/api/v1/statuses/{0}/reblogged_by'.format(str(id)) url = '/api/v1/statuses/{0}/reblogged_by'.format(str(id))
return self.__api_request('GET', url) return self.__api_request('GET', url)
@ -345,6 +361,7 @@ class Mastodon:
Returns a list of user dicts. Returns a list of user dicts.
""" """
id = self.__unpack_id(id)
url = '/api/v1/statuses/{0}/favourited_by'.format(str(id)) url = '/api/v1/statuses/{0}/favourited_by'.format(str(id))
return self.__api_request('GET', url) return self.__api_request('GET', url)
@ -360,10 +377,17 @@ class Mastodon:
Returns a list of notification dicts. Returns a list of notification dicts.
""" """
if max_id != None:
max_id = self.__unpack_id(max_id)
if since_id != None:
since_id = self.__unpack_id(since_id)
if id is None: if id is None:
params = self.__generate_params(locals(), ['id']) params = self.__generate_params(locals(), ['id'])
return self.__api_request('GET', '/api/v1/notifications', params) return self.__api_request('GET', '/api/v1/notifications', params)
else: else:
id = self.__unpack_id(id)
url = '/api/v1/notifications/{0}'.format(str(id)) url = '/api/v1/notifications/{0}'.format(str(id))
return self.__api_request('GET', url) return self.__api_request('GET', url)
@ -376,6 +400,7 @@ class Mastodon:
Returns a user dict. Returns a user dict.
""" """
id = self.__unpack_id(id)
url = '/api/v1/accounts/{0}'.format(str(id)) url = '/api/v1/accounts/{0}'.format(str(id))
return self.__api_request('GET', url) return self.__api_request('GET', url)
@ -393,6 +418,13 @@ class Mastodon:
Returns a list of toot dicts. Returns a list of toot dicts.
""" """
id = self.__unpack_id(id)
if max_id != None:
max_id = self.__unpack_id(max_id)
if since_id != None:
since_id = self.__unpack_id(since_id)
params = self.__generate_params(locals(), ['id']) params = self.__generate_params(locals(), ['id'])
url = '/api/v1/accounts/{0}/statuses'.format(str(id)) url = '/api/v1/accounts/{0}/statuses'.format(str(id))
return self.__api_request('GET', url, params) return self.__api_request('GET', url, params)
@ -403,6 +435,13 @@ class Mastodon:
Returns a list of user dicts. Returns a list of user dicts.
""" """
id = self.__unpack_id(id)
if max_id != None:
max_id = self.__unpack_id(max_id)
if since_id != None:
since_id = self.__unpack_id(since_id)
params = self.__generate_params(locals(), ['id']) params = self.__generate_params(locals(), ['id'])
url = '/api/v1/accounts/{0}/following'.format(str(id)) url = '/api/v1/accounts/{0}/following'.format(str(id))
return self.__api_request('GET', url, params) return self.__api_request('GET', url, params)
@ -413,6 +452,13 @@ class Mastodon:
Returns a list of user dicts. Returns a list of user dicts.
""" """
id = self.__unpack_id(id)
if max_id != None:
max_id = self.__unpack_id(max_id)
if since_id != None:
since_id = self.__unpack_id(since_id)
params = self.__generate_params(locals(), ['id']) params = self.__generate_params(locals(), ['id'])
url = '/api/v1/accounts/{0}/followers'.format(str(id)) url = '/api/v1/accounts/{0}/followers'.format(str(id))
return self.__api_request('GET', url, params) return self.__api_request('GET', url, params)
@ -424,6 +470,7 @@ class Mastodon:
Returns a list of relationship dicts. Returns a list of relationship dicts.
""" """
id = self.__unpack_id(id)
params = self.__generate_params(locals()) params = self.__generate_params(locals())
return self.__api_request('GET', '/api/v1/accounts/relationships', return self.__api_request('GET', '/api/v1/accounts/relationships',
params) params)
@ -460,6 +507,12 @@ class Mastodon:
Returns a list of user dicts. Returns a list of user dicts.
""" """
if max_id != None:
max_id = self.__unpack_id(max_id)
if since_id != None:
since_id = self.__unpack_id(since_id)
params = self.__generate_params(locals()) params = self.__generate_params(locals())
return self.__api_request('GET', '/api/v1/mutes', params) return self.__api_request('GET', '/api/v1/mutes', params)
@ -469,6 +522,12 @@ class Mastodon:
Returns a list of user dicts. Returns a list of user dicts.
""" """
if max_id != None:
max_id = self.__unpack_id(max_id)
if since_id != None:
since_id = self.__unpack_id(since_id)
params = self.__generate_params(locals()) params = self.__generate_params(locals())
return self.__api_request('GET', '/api/v1/blocks', params) return self.__api_request('GET', '/api/v1/blocks', params)
@ -495,6 +554,12 @@ class Mastodon:
Returns a list of toot dicts. Returns a list of toot dicts.
""" """
if max_id != None:
max_id = self.__unpack_id(max_id)
if since_id != None:
since_id = self.__unpack_id(since_id)
params = self.__generate_params(locals()) params = self.__generate_params(locals())
return self.__api_request('GET', '/api/v1/favourites', params) return self.__api_request('GET', '/api/v1/favourites', params)
@ -507,6 +572,12 @@ class Mastodon:
Returns a list of user dicts. Returns a list of user dicts.
""" """
if max_id != None:
max_id = self.__unpack_id(max_id)
if since_id != None:
since_id = self.__unpack_id(since_id)
params = self.__generate_params(locals()) params = self.__generate_params(locals())
return self.__api_request('GET', '/api/v1/follow_requests', params) return self.__api_request('GET', '/api/v1/follow_requests', params)
@ -519,6 +590,12 @@ class Mastodon:
Returns a list of blocked domain URLs (as strings, without protocol specifier). Returns a list of blocked domain URLs (as strings, without protocol specifier).
""" """
if max_id != None:
max_id = self.__unpack_id(max_id)
if since_id != None:
since_id = self.__unpack_id(since_id)
params = self.__generate_params(locals()) params = self.__generate_params(locals())
return self.__api_request('GET', '/api/v1/domain_blocks', params) return self.__api_request('GET', '/api/v1/domain_blocks', params)
@ -555,6 +632,9 @@ class Mastodon:
Returns a toot dict with the new status. Returns a toot dict with the new status.
""" """
if in_reply_to_id != None:
in_reply_to_id = self.__unpack_id(in_reply_to_id)
params_initial = locals() params_initial = locals()
# Validate visibility parameter # Validate visibility parameter
@ -599,6 +679,7 @@ class Mastodon:
Returns an empty dict for good measure. Returns an empty dict for good measure.
""" """
id = self.__unpack_id(id)
url = '/api/v1/statuses/{0}'.format(str(id)) url = '/api/v1/statuses/{0}'.format(str(id))
return self.__api_request('DELETE', url) return self.__api_request('DELETE', url)
@ -608,6 +689,7 @@ class Mastodon:
Returns a toot dict with a new status that wraps around the reblogged one. Returns a toot dict with a new status that wraps around the reblogged one.
""" """
id = self.__unpack_id(id)
url = '/api/v1/statuses/{0}/reblog'.format(str(id)) url = '/api/v1/statuses/{0}/reblog'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -617,6 +699,7 @@ class Mastodon:
Returns a toot dict with the status that used to be reblogged. Returns a toot dict with the status that used to be reblogged.
""" """
id = self.__unpack_id(id)
url = '/api/v1/statuses/{0}/unreblog'.format(str(id)) url = '/api/v1/statuses/{0}/unreblog'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -626,6 +709,7 @@ class Mastodon:
Returns a toot dict with the favourited status. Returns a toot dict with the favourited status.
""" """
id = self.__unpack_id(id)
url = '/api/v1/statuses/{0}/favourite'.format(str(id)) url = '/api/v1/statuses/{0}/favourite'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -635,6 +719,7 @@ class Mastodon:
Returns a toot dict with the un-favourited status. Returns a toot dict with the un-favourited status.
""" """
id = self.__unpack_id(id)
url = '/api/v1/statuses/{0}/unfavourite'.format(str(id)) url = '/api/v1/statuses/{0}/unfavourite'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -644,6 +729,7 @@ class Mastodon:
Returns a toot dict with the now muted status Returns a toot dict with the now muted status
""" """
id = self.__unpack_id(id)
url = '/api/v1/statuses/{0}/mute'.format(str(id)) url = '/api/v1/statuses/{0}/mute'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -653,6 +739,7 @@ class Mastodon:
Returns a toot dict with the status that used to be muted. Returns a toot dict with the status that used to be muted.
""" """
id = self.__unpack_id(id)
url = '/api/v1/statuses/{0}/unmute'.format(str(id)) url = '/api/v1/statuses/{0}/unmute'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -670,6 +757,7 @@ class Mastodon:
""" """
Deletes a single notification Deletes a single notification
""" """
id = self.__unpack_id(id)
params = self.__generate_params(locals()) params = self.__generate_params(locals())
return self.__api_request('POST', '/api/v1/notifications/dismiss', params) return self.__api_request('POST', '/api/v1/notifications/dismiss', params)
@ -682,6 +770,7 @@ class Mastodon:
Returns a relationship dict containing the updated relationship to the user. Returns a relationship dict containing the updated relationship to the user.
""" """
id = self.__unpack_id(id)
url = '/api/v1/accounts/{0}/follow'.format(str(id)) url = '/api/v1/accounts/{0}/follow'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -700,6 +789,7 @@ class Mastodon:
Returns a relationship dict containing the updated relationship to the user. Returns a relationship dict containing the updated relationship to the user.
""" """
id = self.__unpack_id(id)
url = '/api/v1/accounts/{0}/unfollow'.format(str(id)) url = '/api/v1/accounts/{0}/unfollow'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -709,6 +799,7 @@ class Mastodon:
Returns a relationship dict containing the updated relationship to the user. Returns a relationship dict containing the updated relationship to the user.
""" """
id = self.__unpack_id(id)
url = '/api/v1/accounts/{0}/block'.format(str(id)) url = '/api/v1/accounts/{0}/block'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -718,6 +809,7 @@ class Mastodon:
Returns a relationship dict containing the updated relationship to the user. Returns a relationship dict containing the updated relationship to the user.
""" """
id = self.__unpack_id(id)
url = '/api/v1/accounts/{0}/unblock'.format(str(id)) url = '/api/v1/accounts/{0}/unblock'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -727,6 +819,7 @@ class Mastodon:
Returns a relationship dict containing the updated relationship to the user. Returns a relationship dict containing the updated relationship to the user.
""" """
id = self.__unpack_id(id)
url = '/api/v1/accounts/{0}/mute'.format(str(id)) url = '/api/v1/accounts/{0}/mute'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -736,6 +829,7 @@ class Mastodon:
Returns a relationship dict containing the updated relationship to the user. Returns a relationship dict containing the updated relationship to the user.
""" """
id = self.__unpack_id(id)
url = '/api/v1/accounts/{0}/unmute'.format(str(id)) url = '/api/v1/accounts/{0}/unmute'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -763,6 +857,8 @@ class Mastodon:
Returns a report dict. Returns a report dict.
""" """
account_id = self.__unpack_id(account_id)
status_ids = map(lambda x: self.__unpack_id(x), status_ids)
params = self.__generate_params(locals()) params = self.__generate_params(locals())
return self.__api_request('POST', '/api/v1/reports/', params) return self.__api_request('POST', '/api/v1/reports/', params)
@ -775,6 +871,7 @@ class Mastodon:
Returns an empty dict. Returns an empty dict.
""" """
id = self.__unpack_id(id)
url = '/api/v1/follow_requests/{0}/authorize'.format(str(id)) url = '/api/v1/follow_requests/{0}/authorize'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -784,6 +881,7 @@ class Mastodon:
Returns an empty dict. Returns an empty dict.
""" """
id = self.__unpack_id(id)
url = '/api/v1/follow_requests/{0}/reject'.format(str(id)) url = '/api/v1/follow_requests/{0}/reject'.format(str(id))
return self.__api_request('POST', url) return self.__api_request('POST', url)
@ -1269,6 +1367,19 @@ class Mastodon:
return params return params
def __unpack_id(self, id):
"""
Internal object-to-id converter
Checks if id is a dict that contains id and
returns the id inside, otherwise just returns
the id straight.
"""
if isinstance(id, dict) and "id" in id:
return id["id"]
else:
return id
def __get_token_expired(self): def __get_token_expired(self):
"""Internal helper for oauth code""" """Internal helper for oauth code"""
return self._token_expired < datetime.datetime.now() return self._token_expired < datetime.datetime.now()