diff --git a/atproto b/atproto index b079506..e306304 160000 --- a/atproto +++ b/atproto @@ -1 +1 @@ -Subproject commit b07950682c51b1aa2216958178aa4eae437846e6 +Subproject commit e3063041a32ec6feb8e8cf48a96da99daec48707 diff --git a/chitose/app/bsky/actor/defs.py b/chitose/app/bsky/actor/defs.py index bfa9ed3..6a8f6ae 100644 --- a/chitose/app/bsky/actor/defs.py +++ b/chitose/app/bsky/actor/defs.py @@ -85,7 +85,7 @@ def __init__(self, muted: typing.Optional[bool]=None, muted_by_list: typing.Opti def to_dict(self) -> dict[str, typing.Any]: return {'muted': self.muted, 'mutedByList': self.muted_by_list, 'blockedBy': self.blocked_by, 'blocking': self.blocking, 'blockingByList': self.blocking_by_list, 'following': self.following, 'followedBy': self.followed_by, '$type': 'app.bsky.actor.defs#viewerState'} -Preferences = list[typing.Union['chitose.app.bsky.actor.defs.AdultContentPref', 'chitose.app.bsky.actor.defs.ContentLabelPref', 'chitose.app.bsky.actor.defs.SavedFeedsPref', 'chitose.app.bsky.actor.defs.PersonalDetailsPref', 'chitose.app.bsky.actor.defs.FeedViewPref', 'chitose.app.bsky.actor.defs.ThreadViewPref', 'chitose.app.bsky.actor.defs.InterestsPref', 'chitose.app.bsky.actor.defs.MutedWordsPref', 'chitose.app.bsky.actor.defs.HiddenPostsPref']] +Preferences = list[typing.Union['chitose.app.bsky.actor.defs.AdultContentPref', 'chitose.app.bsky.actor.defs.ContentLabelPref', 'chitose.app.bsky.actor.defs.SavedFeedsPref', 'chitose.app.bsky.actor.defs.SavedFeedsPrefV2', 'chitose.app.bsky.actor.defs.PersonalDetailsPref', 'chitose.app.bsky.actor.defs.FeedViewPref', 'chitose.app.bsky.actor.defs.ThreadViewPref', 'chitose.app.bsky.actor.defs.InterestsPref', 'chitose.app.bsky.actor.defs.MutedWordsPref', 'chitose.app.bsky.actor.defs.HiddenPostsPref']] class AdultContentPref(chitose.Object): """""" @@ -111,6 +111,27 @@ def __init__(self, label: str, visibility: typing.Literal['ignore', 'show', 'war def to_dict(self) -> dict[str, typing.Any]: return {'label': self.label, 'visibility': self.visibility, 'labelerDid': self.labeler_did, '$type': 'app.bsky.actor.defs#contentLabelPref'} +class SavedFeed(chitose.Object): + """""" + + def __init__(self, id: str, type: typing.Literal['feed', 'list', 'timeline'], value: str, pinned: bool) -> None: + self.id = id + self.type = type + self.value = value + self.pinned = pinned + + def to_dict(self) -> dict[str, typing.Any]: + return {'id': self.id, 'type': self.type, 'value': self.value, 'pinned': self.pinned, '$type': 'app.bsky.actor.defs#savedFeed'} + +class SavedFeedsPrefV2(chitose.Object): + """""" + + def __init__(self, items: list[chitose.app.bsky.actor.defs.SavedFeed]) -> None: + self.items = items + + def to_dict(self) -> dict[str, typing.Any]: + return {'items': self.items, '$type': 'app.bsky.actor.defs#savedFeedsPrefV2'} + class SavedFeedsPref(chitose.Object): """""" diff --git a/chitose/tools/ozone/moderation/__init__.py b/chitose/tools/ozone/moderation/__init__.py index 5f5b2e7..826020c 100644 --- a/chitose/tools/ozone/moderation/__init__.py +++ b/chitose/tools/ozone/moderation/__init__.py @@ -21,7 +21,7 @@ def __init__(self, call: XrpcCall, subscribe: XrpcSubscribe) -> None: self.call = call self.subscribe = subscribe - def query_statuses(self, subject: typing.Optional[str]=None, comment: typing.Optional[str]=None, reported_after: typing.Optional[str]=None, reported_before: typing.Optional[str]=None, reviewed_after: typing.Optional[str]=None, reviewed_before: typing.Optional[str]=None, include_muted: typing.Optional[bool]=None, review_state: typing.Optional[str]=None, ignore_subjects: typing.Optional[list[str]]=None, last_reviewed_by: typing.Optional[str]=None, sort_field: typing.Optional[str]=None, sort_direction: typing.Optional[str]=None, takendown: typing.Optional[bool]=None, appealed: typing.Optional[bool]=None, limit: typing.Optional[int]=None, tags: typing.Optional[list[str]]=None, exclude_tags: typing.Optional[list[str]]=None, cursor: typing.Optional[str]=None) -> bytes: + def query_statuses(self, subject: typing.Optional[str]=None, comment: typing.Optional[str]=None, reported_after: typing.Optional[str]=None, reported_before: typing.Optional[str]=None, reviewed_after: typing.Optional[str]=None, reviewed_before: typing.Optional[str]=None, include_muted: typing.Optional[bool]=None, only_muted: typing.Optional[bool]=None, review_state: typing.Optional[str]=None, ignore_subjects: typing.Optional[list[str]]=None, last_reviewed_by: typing.Optional[str]=None, sort_field: typing.Optional[str]=None, sort_direction: typing.Optional[str]=None, takendown: typing.Optional[bool]=None, appealed: typing.Optional[bool]=None, limit: typing.Optional[int]=None, tags: typing.Optional[list[str]]=None, exclude_tags: typing.Optional[list[str]]=None, cursor: typing.Optional[str]=None) -> bytes: """View moderation statuses of subjects (record or repo). @@ -37,6 +37,8 @@ def query_statuses(self, subject: typing.Optional[str]=None, comment: typing.Opt :param include_muted: By default, we don't include muted subjects in the results. Set this to true to include them. + :param only_muted: When set to true, only muted subjects and reporters will be returned. + :param review_state: Specify when fetching subjects in a certain state :param last_reviewed_by: Get all subject statuses that were reviewed by a specific moderator @@ -45,7 +47,7 @@ def query_statuses(self, subject: typing.Optional[str]=None, comment: typing.Opt :param appealed: Get subjects in unresolved appealed status """ - return _query_statuses(self.call, subject, comment, reported_after, reported_before, reviewed_after, reviewed_before, include_muted, review_state, ignore_subjects, last_reviewed_by, sort_field, sort_direction, takendown, appealed, limit, tags, exclude_tags, cursor) + return _query_statuses(self.call, subject, comment, reported_after, reported_before, reviewed_after, reviewed_before, include_muted, only_muted, review_state, ignore_subjects, last_reviewed_by, sort_field, sort_direction, takendown, appealed, limit, tags, exclude_tags, cursor) def get_repo(self, did: str) -> bytes: """Get details about a repository.""" @@ -87,7 +89,7 @@ def get_record(self, uri: str, cid: typing.Optional[str]=None) -> bytes: """Get details about a record.""" return _get_record(self.call, uri, cid) - def emit_event(self, event: typing.Union[chitose.tools.ozone.moderation.defs.ModEventTakedown, chitose.tools.ozone.moderation.defs.ModEventAcknowledge, chitose.tools.ozone.moderation.defs.ModEventEscalate, chitose.tools.ozone.moderation.defs.ModEventComment, chitose.tools.ozone.moderation.defs.ModEventLabel, chitose.tools.ozone.moderation.defs.ModEventReport, chitose.tools.ozone.moderation.defs.ModEventMute, chitose.tools.ozone.moderation.defs.ModEventReverseTakedown, chitose.tools.ozone.moderation.defs.ModEventUnmute, chitose.tools.ozone.moderation.defs.ModEventEmail, chitose.tools.ozone.moderation.defs.ModEventTag], subject: typing.Union[chitose.com.atproto.admin.defs.RepoRef, chitose.com.atproto.repo.strong_ref.StrongRef], created_by: str, subject_blob_cids: typing.Optional[list[str]]=None) -> bytes: + def emit_event(self, event: typing.Union[chitose.tools.ozone.moderation.defs.ModEventTakedown, chitose.tools.ozone.moderation.defs.ModEventAcknowledge, chitose.tools.ozone.moderation.defs.ModEventEscalate, chitose.tools.ozone.moderation.defs.ModEventComment, chitose.tools.ozone.moderation.defs.ModEventLabel, chitose.tools.ozone.moderation.defs.ModEventReport, chitose.tools.ozone.moderation.defs.ModEventMute, chitose.tools.ozone.moderation.defs.ModEventUnmute, chitose.tools.ozone.moderation.defs.ModEventMuteReporter, chitose.tools.ozone.moderation.defs.ModEventUnmuteReporter, chitose.tools.ozone.moderation.defs.ModEventReverseTakedown, chitose.tools.ozone.moderation.defs.ModEventUnmute, chitose.tools.ozone.moderation.defs.ModEventEmail, chitose.tools.ozone.moderation.defs.ModEventTag], subject: typing.Union[chitose.com.atproto.admin.defs.RepoRef, chitose.com.atproto.repo.strong_ref.StrongRef], created_by: str, subject_blob_cids: typing.Optional[list[str]]=None) -> bytes: """Take a moderation action on an actor.""" return _emit_event(self.call, event, subject, created_by, subject_blob_cids) diff --git a/chitose/tools/ozone/moderation/defs.py b/chitose/tools/ozone/moderation/defs.py index d812f07..024670c 100644 --- a/chitose/tools/ozone/moderation/defs.py +++ b/chitose/tools/ozone/moderation/defs.py @@ -13,7 +13,7 @@ class ModEventView(chitose.Object): """""" - def __init__(self, id: int, event: typing.Union[chitose.tools.ozone.moderation.defs.ModEventTakedown, chitose.tools.ozone.moderation.defs.ModEventReverseTakedown, chitose.tools.ozone.moderation.defs.ModEventComment, chitose.tools.ozone.moderation.defs.ModEventReport, chitose.tools.ozone.moderation.defs.ModEventLabel, chitose.tools.ozone.moderation.defs.ModEventAcknowledge, chitose.tools.ozone.moderation.defs.ModEventEscalate, chitose.tools.ozone.moderation.defs.ModEventMute, chitose.tools.ozone.moderation.defs.ModEventEmail, chitose.tools.ozone.moderation.defs.ModEventResolveAppeal, chitose.tools.ozone.moderation.defs.ModEventDivert], subject: typing.Union[chitose.com.atproto.admin.defs.RepoRef, chitose.com.atproto.repo.strong_ref.StrongRef], subject_blob_cids: list[str], created_by: str, created_at: str, creator_handle: typing.Optional[str]=None, subject_handle: typing.Optional[str]=None) -> None: + def __init__(self, id: int, event: typing.Union[chitose.tools.ozone.moderation.defs.ModEventTakedown, chitose.tools.ozone.moderation.defs.ModEventReverseTakedown, chitose.tools.ozone.moderation.defs.ModEventComment, chitose.tools.ozone.moderation.defs.ModEventReport, chitose.tools.ozone.moderation.defs.ModEventLabel, chitose.tools.ozone.moderation.defs.ModEventAcknowledge, chitose.tools.ozone.moderation.defs.ModEventEscalate, chitose.tools.ozone.moderation.defs.ModEventMute, chitose.tools.ozone.moderation.defs.ModEventUnmute, chitose.tools.ozone.moderation.defs.ModEventMuteReporter, chitose.tools.ozone.moderation.defs.ModEventUnmuteReporter, chitose.tools.ozone.moderation.defs.ModEventEmail, chitose.tools.ozone.moderation.defs.ModEventResolveAppeal, chitose.tools.ozone.moderation.defs.ModEventDivert], subject: typing.Union[chitose.com.atproto.admin.defs.RepoRef, chitose.com.atproto.repo.strong_ref.StrongRef], subject_blob_cids: list[str], created_by: str, created_at: str, creator_handle: typing.Optional[str]=None, subject_handle: typing.Optional[str]=None) -> None: self.id = id self.event = event self.subject = subject @@ -29,7 +29,7 @@ def to_dict(self) -> dict[str, typing.Any]: class ModEventViewDetail(chitose.Object): """""" - def __init__(self, id: int, event: typing.Union[chitose.tools.ozone.moderation.defs.ModEventTakedown, chitose.tools.ozone.moderation.defs.ModEventReverseTakedown, chitose.tools.ozone.moderation.defs.ModEventComment, chitose.tools.ozone.moderation.defs.ModEventReport, chitose.tools.ozone.moderation.defs.ModEventLabel, chitose.tools.ozone.moderation.defs.ModEventAcknowledge, chitose.tools.ozone.moderation.defs.ModEventEscalate, chitose.tools.ozone.moderation.defs.ModEventMute, chitose.tools.ozone.moderation.defs.ModEventEmail, chitose.tools.ozone.moderation.defs.ModEventResolveAppeal, chitose.tools.ozone.moderation.defs.ModEventDivert], subject: typing.Union[chitose.tools.ozone.moderation.defs.RepoView, chitose.tools.ozone.moderation.defs.RepoViewNotFound, chitose.tools.ozone.moderation.defs.RecordView, chitose.tools.ozone.moderation.defs.RecordViewNotFound], subject_blobs: list[chitose.tools.ozone.moderation.defs.BlobView], created_by: str, created_at: str) -> None: + def __init__(self, id: int, event: typing.Union[chitose.tools.ozone.moderation.defs.ModEventTakedown, chitose.tools.ozone.moderation.defs.ModEventReverseTakedown, chitose.tools.ozone.moderation.defs.ModEventComment, chitose.tools.ozone.moderation.defs.ModEventReport, chitose.tools.ozone.moderation.defs.ModEventLabel, chitose.tools.ozone.moderation.defs.ModEventAcknowledge, chitose.tools.ozone.moderation.defs.ModEventEscalate, chitose.tools.ozone.moderation.defs.ModEventMute, chitose.tools.ozone.moderation.defs.ModEventUnmute, chitose.tools.ozone.moderation.defs.ModEventMuteReporter, chitose.tools.ozone.moderation.defs.ModEventUnmuteReporter, chitose.tools.ozone.moderation.defs.ModEventEmail, chitose.tools.ozone.moderation.defs.ModEventResolveAppeal, chitose.tools.ozone.moderation.defs.ModEventDivert], subject: typing.Union[chitose.tools.ozone.moderation.defs.RepoView, chitose.tools.ozone.moderation.defs.RepoViewNotFound, chitose.tools.ozone.moderation.defs.RecordView, chitose.tools.ozone.moderation.defs.RecordViewNotFound], subject_blobs: list[chitose.tools.ozone.moderation.defs.BlobView], created_by: str, created_at: str) -> None: self.id = id self.event = event self.subject = subject @@ -55,7 +55,7 @@ class SubjectStatusView(chitose.Object): :param appealed: True indicates that the a previously taken moderator action was appealed against, by the author of the content. False indicates last appeal was resolved by moderators. """ - def __init__(self, id: int, subject: typing.Union[chitose.com.atproto.admin.defs.RepoRef, chitose.com.atproto.repo.strong_ref.StrongRef], updated_at: str, created_at: str, review_state: chitose.tools.ozone.moderation.defs.SubjectReviewState, subject_blob_cids: typing.Optional[list[str]]=None, subject_repo_handle: typing.Optional[str]=None, comment: typing.Optional[str]=None, mute_until: typing.Optional[str]=None, last_reviewed_by: typing.Optional[str]=None, last_reviewed_at: typing.Optional[str]=None, last_reported_at: typing.Optional[str]=None, last_appealed_at: typing.Optional[str]=None, takendown: typing.Optional[bool]=None, appealed: typing.Optional[bool]=None, suspend_until: typing.Optional[str]=None, tags: typing.Optional[list[str]]=None) -> None: + def __init__(self, id: int, subject: typing.Union[chitose.com.atproto.admin.defs.RepoRef, chitose.com.atproto.repo.strong_ref.StrongRef], updated_at: str, created_at: str, review_state: chitose.tools.ozone.moderation.defs.SubjectReviewState, subject_blob_cids: typing.Optional[list[str]]=None, subject_repo_handle: typing.Optional[str]=None, comment: typing.Optional[str]=None, mute_until: typing.Optional[str]=None, mute_reporting_until: typing.Optional[str]=None, last_reviewed_by: typing.Optional[str]=None, last_reviewed_at: typing.Optional[str]=None, last_reported_at: typing.Optional[str]=None, last_appealed_at: typing.Optional[str]=None, takendown: typing.Optional[bool]=None, appealed: typing.Optional[bool]=None, suspend_until: typing.Optional[str]=None, tags: typing.Optional[list[str]]=None) -> None: self.id = id self.subject = subject self.updated_at = updated_at @@ -65,6 +65,7 @@ def __init__(self, id: int, subject: typing.Union[chitose.com.atproto.admin.defs self.subject_repo_handle = subject_repo_handle self.comment = comment self.mute_until = mute_until + self.mute_reporting_until = mute_reporting_until self.last_reviewed_by = last_reviewed_by self.last_reviewed_at = last_reviewed_at self.last_reported_at = last_reported_at @@ -75,7 +76,7 @@ def __init__(self, id: int, subject: typing.Union[chitose.com.atproto.admin.defs self.tags = tags def to_dict(self) -> dict[str, typing.Any]: - return {'id': self.id, 'subject': self.subject, 'updatedAt': self.updated_at, 'createdAt': self.created_at, 'reviewState': self.review_state, 'subjectBlobCids': self.subject_blob_cids, 'subjectRepoHandle': self.subject_repo_handle, 'comment': self.comment, 'muteUntil': self.mute_until, 'lastReviewedBy': self.last_reviewed_by, 'lastReviewedAt': self.last_reviewed_at, 'lastReportedAt': self.last_reported_at, 'lastAppealedAt': self.last_appealed_at, 'takendown': self.takendown, 'appealed': self.appealed, 'suspendUntil': self.suspend_until, 'tags': self.tags, '$type': 'tools.ozone.moderation.defs#subjectStatusView'} + return {'id': self.id, 'subject': self.subject, 'updatedAt': self.updated_at, 'createdAt': self.created_at, 'reviewState': self.review_state, 'subjectBlobCids': self.subject_blob_cids, 'subjectRepoHandle': self.subject_repo_handle, 'comment': self.comment, 'muteUntil': self.mute_until, 'muteReportingUntil': self.mute_reporting_until, 'lastReviewedBy': self.last_reviewed_by, 'lastReviewedAt': self.last_reviewed_at, 'lastReportedAt': self.last_reported_at, 'lastAppealedAt': self.last_appealed_at, 'takendown': self.takendown, 'appealed': self.appealed, 'suspendUntil': self.suspend_until, 'tags': self.tags, '$type': 'tools.ozone.moderation.defs#subjectStatusView'} SubjectReviewState = typing.Literal['#reviewOpen', '#reviewEscalated', '#reviewClosed', '#reviewNone'] REVIEW_OPEN = 'tools.ozone.moderation.defs#reviewOpen' REVIEW_ESCALATED = 'tools.ozone.moderation.defs#reviewEscalated' @@ -137,14 +138,19 @@ def to_dict(self) -> dict[str, typing.Any]: return {'comment': self.comment, 'sticky': self.sticky, '$type': 'tools.ozone.moderation.defs#modEventComment'} class ModEventReport(chitose.Object): - """Report a subject""" + """Report a subject - def __init__(self, report_type: chitose.com.atproto.moderation.defs.ReasonType, comment: typing.Optional[str]=None) -> None: + + :param is_reporter_muted: Set to true if the reporter was muted from reporting at the time of the event. These reports won't impact the reviewState of the subject. + """ + + def __init__(self, report_type: chitose.com.atproto.moderation.defs.ReasonType, comment: typing.Optional[str]=None, is_reporter_muted: typing.Optional[bool]=None) -> None: self.report_type = report_type self.comment = comment + self.is_reporter_muted = is_reporter_muted def to_dict(self) -> dict[str, typing.Any]: - return {'reportType': self.report_type, 'comment': self.comment, '$type': 'tools.ozone.moderation.defs#modEventReport'} + return {'reportType': self.report_type, 'comment': self.comment, 'isReporterMuted': self.is_reporter_muted, '$type': 'tools.ozone.moderation.defs#modEventReport'} class ModEventLabel(chitose.Object): """Apply/Negate labels on a subject""" @@ -202,6 +208,33 @@ def __init__(self, comment: typing.Optional[str]=None) -> None: def to_dict(self) -> dict[str, typing.Any]: return {'comment': self.comment, '$type': 'tools.ozone.moderation.defs#modEventUnmute'} +class ModEventMuteReporter(chitose.Object): + """Mute incoming reports from an account + + + :param duration_in_hours: Indicates how long the account should remain muted. + """ + + def __init__(self, duration_in_hours: int, comment: typing.Optional[str]=None) -> None: + self.duration_in_hours = duration_in_hours + self.comment = comment + + def to_dict(self) -> dict[str, typing.Any]: + return {'durationInHours': self.duration_in_hours, 'comment': self.comment, '$type': 'tools.ozone.moderation.defs#modEventMuteReporter'} + +class ModEventUnmuteReporter(chitose.Object): + """Unmute incoming reports from an account + + + :param comment: Describe reasoning behind the reversal. + """ + + def __init__(self, comment: typing.Optional[str]=None) -> None: + self.comment = comment + + def to_dict(self) -> dict[str, typing.Any]: + return {'comment': self.comment, '$type': 'tools.ozone.moderation.defs#modEventUnmuteReporter'} + class ModEventEmail(chitose.Object): """Keep a log of outgoing email to a user diff --git a/chitose/tools/ozone/moderation/emit_event.py b/chitose/tools/ozone/moderation/emit_event.py index 451d6b3..f8ef8f4 100644 --- a/chitose/tools/ozone/moderation/emit_event.py +++ b/chitose/tools/ozone/moderation/emit_event.py @@ -7,6 +7,6 @@ import chitose.tools.ozone.moderation.defs import typing -def _emit_event(call: chitose.xrpc.XrpcCall, event: typing.Union[chitose.tools.ozone.moderation.defs.ModEventTakedown, chitose.tools.ozone.moderation.defs.ModEventAcknowledge, chitose.tools.ozone.moderation.defs.ModEventEscalate, chitose.tools.ozone.moderation.defs.ModEventComment, chitose.tools.ozone.moderation.defs.ModEventLabel, chitose.tools.ozone.moderation.defs.ModEventReport, chitose.tools.ozone.moderation.defs.ModEventMute, chitose.tools.ozone.moderation.defs.ModEventReverseTakedown, chitose.tools.ozone.moderation.defs.ModEventUnmute, chitose.tools.ozone.moderation.defs.ModEventEmail, chitose.tools.ozone.moderation.defs.ModEventTag], subject: typing.Union[chitose.com.atproto.admin.defs.RepoRef, chitose.com.atproto.repo.strong_ref.StrongRef], created_by: str, subject_blob_cids: typing.Optional[list[str]]=None) -> bytes: +def _emit_event(call: chitose.xrpc.XrpcCall, event: typing.Union[chitose.tools.ozone.moderation.defs.ModEventTakedown, chitose.tools.ozone.moderation.defs.ModEventAcknowledge, chitose.tools.ozone.moderation.defs.ModEventEscalate, chitose.tools.ozone.moderation.defs.ModEventComment, chitose.tools.ozone.moderation.defs.ModEventLabel, chitose.tools.ozone.moderation.defs.ModEventReport, chitose.tools.ozone.moderation.defs.ModEventMute, chitose.tools.ozone.moderation.defs.ModEventUnmute, chitose.tools.ozone.moderation.defs.ModEventMuteReporter, chitose.tools.ozone.moderation.defs.ModEventUnmuteReporter, chitose.tools.ozone.moderation.defs.ModEventReverseTakedown, chitose.tools.ozone.moderation.defs.ModEventUnmute, chitose.tools.ozone.moderation.defs.ModEventEmail, chitose.tools.ozone.moderation.defs.ModEventTag], subject: typing.Union[chitose.com.atproto.admin.defs.RepoRef, chitose.com.atproto.repo.strong_ref.StrongRef], created_by: str, subject_blob_cids: typing.Optional[list[str]]=None) -> bytes: """Take a moderation action on an actor.""" return call('tools.ozone.moderation.emitEvent', [], {'event': event, 'subject': subject, 'subjectBlobCids': subject_blob_cids, 'createdBy': created_by}, {'Content-Type': 'application/json'}) \ No newline at end of file diff --git a/chitose/tools/ozone/moderation/query_statuses.py b/chitose/tools/ozone/moderation/query_statuses.py index 97c7b07..d533808 100644 --- a/chitose/tools/ozone/moderation/query_statuses.py +++ b/chitose/tools/ozone/moderation/query_statuses.py @@ -4,7 +4,7 @@ import chitose import typing -def _query_statuses(call: chitose.xrpc.XrpcCall, subject: typing.Optional[str]=None, comment: typing.Optional[str]=None, reported_after: typing.Optional[str]=None, reported_before: typing.Optional[str]=None, reviewed_after: typing.Optional[str]=None, reviewed_before: typing.Optional[str]=None, include_muted: typing.Optional[bool]=None, review_state: typing.Optional[str]=None, ignore_subjects: typing.Optional[list[str]]=None, last_reviewed_by: typing.Optional[str]=None, sort_field: typing.Optional[str]=None, sort_direction: typing.Optional[str]=None, takendown: typing.Optional[bool]=None, appealed: typing.Optional[bool]=None, limit: typing.Optional[int]=None, tags: typing.Optional[list[str]]=None, exclude_tags: typing.Optional[list[str]]=None, cursor: typing.Optional[str]=None) -> bytes: +def _query_statuses(call: chitose.xrpc.XrpcCall, subject: typing.Optional[str]=None, comment: typing.Optional[str]=None, reported_after: typing.Optional[str]=None, reported_before: typing.Optional[str]=None, reviewed_after: typing.Optional[str]=None, reviewed_before: typing.Optional[str]=None, include_muted: typing.Optional[bool]=None, only_muted: typing.Optional[bool]=None, review_state: typing.Optional[str]=None, ignore_subjects: typing.Optional[list[str]]=None, last_reviewed_by: typing.Optional[str]=None, sort_field: typing.Optional[str]=None, sort_direction: typing.Optional[str]=None, takendown: typing.Optional[bool]=None, appealed: typing.Optional[bool]=None, limit: typing.Optional[int]=None, tags: typing.Optional[list[str]]=None, exclude_tags: typing.Optional[list[str]]=None, cursor: typing.Optional[str]=None) -> bytes: """View moderation statuses of subjects (record or repo). @@ -20,6 +20,8 @@ def _query_statuses(call: chitose.xrpc.XrpcCall, subject: typing.Optional[str]=N :param include_muted: By default, we don't include muted subjects in the results. Set this to true to include them. + :param only_muted: When set to true, only muted subjects and reporters will be returned. + :param review_state: Specify when fetching subjects in a certain state :param last_reviewed_by: Get all subject statuses that were reviewed by a specific moderator @@ -28,4 +30,4 @@ def _query_statuses(call: chitose.xrpc.XrpcCall, subject: typing.Optional[str]=N :param appealed: Get subjects in unresolved appealed status """ - return call('tools.ozone.moderation.queryStatuses', [('subject', subject), ('comment', comment), ('reportedAfter', reported_after), ('reportedBefore', reported_before), ('reviewedAfter', reviewed_after), ('reviewedBefore', reviewed_before), ('includeMuted', include_muted), ('reviewState', review_state), ('ignoreSubjects', ignore_subjects), ('lastReviewedBy', last_reviewed_by), ('sortField', sort_field), ('sortDirection', sort_direction), ('takendown', takendown), ('appealed', appealed), ('limit', limit), ('tags', tags), ('excludeTags', exclude_tags), ('cursor', cursor)], None, {}) \ No newline at end of file + return call('tools.ozone.moderation.queryStatuses', [('subject', subject), ('comment', comment), ('reportedAfter', reported_after), ('reportedBefore', reported_before), ('reviewedAfter', reviewed_after), ('reviewedBefore', reviewed_before), ('includeMuted', include_muted), ('onlyMuted', only_muted), ('reviewState', review_state), ('ignoreSubjects', ignore_subjects), ('lastReviewedBy', last_reviewed_by), ('sortField', sort_field), ('sortDirection', sort_direction), ('takendown', takendown), ('appealed', appealed), ('limit', limit), ('tags', tags), ('excludeTags', exclude_tags), ('cursor', cursor)], None, {}) \ No newline at end of file