Source code for mastodon.reports


# reports.py - report endpoints

from mastodon.versions import _DICT_VERSION_REPORT
from mastodon.errors import MastodonVersionError, MastodonIllegalArgumentError
from mastodon.utility import api_version

from mastodon.internals import Mastodon as Internals
from mastodon.types import NonPaginatableList, Report, Account, IdType, Status, Rule
from typing import Union, Optional, List

class Mastodon(Internals):
    ###
    # Reading data: Reports
    ###
[docs] @api_version("1.1.0", "1.1.0", _DICT_VERSION_REPORT) def reports(self) -> NonPaginatableList[Report]: """ Fetch a list of reports made by the logged-in user. Warning: This method has now finally been removed, and will not work on Mastodon versions 2.5.0 and above. """ if self.verify_minimum_version("2.5.0", cached = True): raise MastodonVersionError("API removed in Mastodon 2.5.0") return self.__api_request('GET', '/api/v1/reports')
### # Writing data: Reports ###
[docs] @api_version("1.1.0", "3.5.0", _DICT_VERSION_REPORT) def report(self, account_id: Union[Account, IdType], status_ids: Optional[Union[Status, IdType]] = None, comment: Optional[str] = None, forward: bool = False, category: Optional[str] = None, rule_ids: Optional[List[Union[Rule, IdType]]] = None) -> Report: """ Report statuses to the instances administrators. Accepts a list of toot IDs associated with the report, and a comment. Starting with Mastodon 3.5.0, you can also pass a `category` (one out of "spam", "violation" or "other") and `rule_ids` (a list of rule IDs corresponding to the rules returned by the :ref:`instance() <instance()>` API). Set `forward` to True to forward a report of a remote user to that users instance as well as sending it to the instance local administrators. """ if category is not None and not category in ["spam", "violation", "other"]: raise MastodonIllegalArgumentError("Invalid report category (must be spam, violation or other)") account_id = self.__unpack_id(account_id) if status_ids is not None: if not isinstance(status_ids, list): status_ids = [status_ids] status_ids = [self.__unpack_id(x) for x in status_ids] params_initial = locals() if not forward: del params_initial['forward'] params = self.__generate_params(params_initial) return self.__api_request('POST', '/api/v1/reports/', params)