Fix several bugs
This commit is contained in:
pare
d9f7442989
commit
a825905b57
S'han modificat 1 arxius amb 48 adicions i 12 eliminacions
|
@ -90,7 +90,7 @@ class Mastodon:
|
||||||
__DEFAULT_BASE_URL = 'https://mastodon.social'
|
__DEFAULT_BASE_URL = 'https://mastodon.social'
|
||||||
__DEFAULT_TIMEOUT = 300
|
__DEFAULT_TIMEOUT = 300
|
||||||
__DEFAULT_STREAM_RECONNECT_WAIT_SEC = 5
|
__DEFAULT_STREAM_RECONNECT_WAIT_SEC = 5
|
||||||
__SUPPORTED_MASTODON_VERSION = "2.2.0"
|
__SUPPORTED_MASTODON_VERSION = "2.3.0"
|
||||||
|
|
||||||
###
|
###
|
||||||
# Registering apps
|
# Registering apps
|
||||||
|
@ -892,7 +892,7 @@ class Mastodon:
|
||||||
###
|
###
|
||||||
@api_version("1.0.0", "2.0.0")
|
@api_version("1.0.0", "2.0.0")
|
||||||
def status_post(self, status, in_reply_to_id=None, media_ids=None,
|
def status_post(self, status, in_reply_to_id=None, media_ids=None,
|
||||||
sensitive=False, visibility='', spoiler_text=None):
|
sensitive=False, visibility=None, spoiler_text=None):
|
||||||
"""
|
"""
|
||||||
Post a status. Can optionally be in reply to another status and contain
|
Post a status. Can optionally be in reply to another status and contain
|
||||||
media.
|
media.
|
||||||
|
@ -930,7 +930,10 @@ class Mastodon:
|
||||||
params_initial = locals()
|
params_initial = locals()
|
||||||
|
|
||||||
# Validate visibility parameter
|
# Validate visibility parameter
|
||||||
valid_visibilities = ['private', 'public', 'unlisted', 'direct', '']
|
valid_visibilities = ['private', 'public', 'unlisted', 'direct']
|
||||||
|
if params_initial['visibility'] == None:
|
||||||
|
del params_initial['visibility']
|
||||||
|
else:
|
||||||
params_initial['visibility'] = params_initial['visibility'].lower()
|
params_initial['visibility'] = params_initial['visibility'].lower()
|
||||||
if params_initial['visibility'] not in valid_visibilities:
|
if params_initial['visibility'] not in valid_visibilities:
|
||||||
raise ValueError('Invalid visibility value! Acceptable '
|
raise ValueError('Invalid visibility value! Acceptable '
|
||||||
|
@ -1145,21 +1148,54 @@ class Mastodon:
|
||||||
|
|
||||||
@api_version("1.1.1", "2.3.0")
|
@api_version("1.1.1", "2.3.0")
|
||||||
def account_update_credentials(self, display_name=None, note=None,
|
def account_update_credentials(self, display_name=None, note=None,
|
||||||
avatar=None, header=None, locked=None):
|
avatar=None, avatar_mime_type=None,
|
||||||
|
header=None, header_mime_type=None, locked=None):
|
||||||
"""
|
"""
|
||||||
Update the profile for the currently logged-in user.
|
Update the profile for the currently logged-in user.
|
||||||
|
|
||||||
'note' is the user's bio.
|
'note' is the user's bio.
|
||||||
|
|
||||||
'avatar' and 'header' are images encoded in base64, prepended by a content-type
|
'avatar' and 'header' are images. As with media uploads, it is possible to either
|
||||||
(for example: 'data:image/png;base64,iVBORw0KGgoAAAA[...]')
|
pass image data and a mime type, or a filename of an image file, for either.
|
||||||
|
|
||||||
'locked' specifies whether the user needs to manually approve follow requests.
|
'locked' specifies whether the user needs to manually approve follow requests.
|
||||||
|
|
||||||
Returns the updated `user dict` of the logged-in user.
|
Returns the updated `user dict` of the logged-in user.
|
||||||
"""
|
"""
|
||||||
params = self.__generate_params(locals())
|
params_initial = locals()
|
||||||
return self.__api_request('PATCH', '/api/v1/accounts/update_credentials', params)
|
|
||||||
|
# Load avatar, if specified
|
||||||
|
if avatar_mime_type is None and os.path.isfile(avatar):
|
||||||
|
avatar_mime_type = mimetypes.guess_type(avatar)[0]
|
||||||
|
avatar = open(avatar, 'rb')
|
||||||
|
|
||||||
|
if (not avatar is None and avatar_mime_type is None):
|
||||||
|
raise MastodonIllegalArgumentError('Could not determine mime type or data passed directly without mime type.')
|
||||||
|
|
||||||
|
# Load header, if specified
|
||||||
|
if header_mime_type is None and os.path.isfile(header):
|
||||||
|
header_mime_type = mimetypes.guess_type(header)[0]
|
||||||
|
header = open(header, 'rb')
|
||||||
|
|
||||||
|
if (not header is None and header_mime_type is None):
|
||||||
|
raise MastodonIllegalArgumentError('Could not determine mime type or data passed directly without mime type.')
|
||||||
|
|
||||||
|
# Clean up params
|
||||||
|
for param in ["avatar", "avatar_mime_type", "header", "header_mime_type"]:
|
||||||
|
if param in params_initial:
|
||||||
|
del params_initial[param]
|
||||||
|
|
||||||
|
# Create file info
|
||||||
|
files = {}
|
||||||
|
if not avatar is None:
|
||||||
|
avatar_file_name = "mastodonpyupload_" + mimetypes.guess_extension(avatar_mime_type)
|
||||||
|
files["avatar"] = (avatar_file_name, avatar, avatar_mime_type)
|
||||||
|
if not header is None:
|
||||||
|
header_file_name = "mastodonpyupload_" + mimetypes.guess_extension(avatar_mime_type)
|
||||||
|
files["header"] = (header_file_name, header, header_mime_type)
|
||||||
|
|
||||||
|
params = self.__generate_params(params_initial)
|
||||||
|
return self.__api_request('PATCH', '/api/v1/accounts/update_credentials', params, files=files)
|
||||||
|
|
||||||
###
|
###
|
||||||
# Writing data: Lists
|
# Writing data: Lists
|
||||||
|
|
Loading…
Referencia en una nova incidència