diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 91bd565..0c9fb49 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -31,6 +31,7 @@ v2.0.0 (IN PROGRESS) * Add with_suspended parameter to account_relationships * Add forward_to_domains parameter to reports * Add `account_delete_avatar` and `account_delete_header` +* Add `statuses` method to retrieve multiple statuses at once v1.8.1 ------ diff --git a/docs/05_statuses.rst b/docs/05_statuses.rst index 06ce997..51738bb 100644 --- a/docs/05_statuses.rst +++ b/docs/05_statuses.rst @@ -17,7 +17,8 @@ Reading .. automethod:: Mastodon.status_card .. automethod:: Mastodon.status_history .. automethod:: Mastodon.status_source - +.. automethod:: Mastodon.statuses + .. automethod:: Mastodon.favourites .. automethod:: Mastodon.bookmarks diff --git a/mastodon/statuses.py b/mastodon/statuses.py index bd81fe1..eb4a702 100644 --- a/mastodon/statuses.py +++ b/mastodon/statuses.py @@ -28,6 +28,16 @@ class Mastodon(Internals): id = self.__unpack_id(id) return self.__api_request('GET', f'/api/v1/statuses/{id}') + @api_version("4.3.0", "4.3.0", _DICT_VERSION_ACCOUNT) + def statuses(self, ids: List[Union[Status, IdType]]) -> List[Status]: + """ + Fetch information from multiple statuses by a list of status `id`. + + Does not require authentication for publicly visible accounts. + """ + ids = [self.__unpack_id(id) for id in ids] + return self.__api_request('GET', '/api/v1/statuses', {"id[]": ids}) + @api_version("1.0.0", "3.0.0", _DICT_VERSION_CARD) def status_card(self, id: Union[Status, IdType]) -> PreviewCard: """ diff --git a/srcgen/return_types.json b/srcgen/return_types.json index 4aad2c9..95ab293 100644 --- a/srcgen/return_types.json +++ b/srcgen/return_types.json @@ -476,6 +476,20 @@ ] ], "enum": null + }, + "memorial": { + "description": "Boolean indicating whether the account is an in-memoriam account.", + "field_type": "bool", + "field_subtype": null, + "is_optional": false, + "is_nullable": false, + "version_history": [ + [ + "4.2.0", + "added" + ] + ], + "enum": null } } }, @@ -5098,7 +5112,21 @@ "added" ] ] - } + }, + "sign_up_url": { + "description": "URL to the sign-up form for this instance. Only present for the v2 API variant of the instance API.", + "field_type": "str", + "field_subtype": null, + "is_optional": true, + "is_nullable": false, + "api_version": "v2", + "version_history": [ + [ + "4.2.0", + "added" + ] + ] + } } }, { @@ -7369,12 +7397,11 @@ "enum": null }, "sensitized": { - "description": "Undocumented. If you know what this means, please let me know.", + "description": "Boolean indicating whether the account has been marked as force-sensitive.", "field_type": "bool", "field_subtype": null, "is_optional": false, "is_nullable": false, - "help_wanted": true, "version_history": [ [ "2.9.1", @@ -8541,7 +8568,7 @@ { "name": "Identity proof", "python_name": "IdentityProof", - "func_call": "TODO_TO_BE_IMPLEMENTED", + "func_call": "# Deprecated since 3.5.0 and eventually removed, there is no way to get this on current versions of Mastodon.", "func_call_real": null, "func_call_additional": null, "func_alternate_acc": null,