From e6c6165d7f1f159edd7c477f586639267d248890 Mon Sep 17 00:00:00 2001 From: "Ilya (Marshal)" Date: Thu, 7 Mar 2024 10:31:50 +0000 Subject: [PATCH] Update lexicons fetched from 3988543 committed 2024-03-06T23:56:34Z --- docs/source/aliases_db.py | 3 + ...to_client.models.app.bsky.labeler.defs.rst | 7 + ...t.models.app.bsky.labeler.get_services.rst | 7 + ...atproto_client.models.app.bsky.labeler.rst | 17 ++ ...client.models.app.bsky.labeler.service.rst | 7 + .../atproto_client.models.app.bsky.rst | 1 + lexicons/app.bsky.actor.defs.json | 45 ++++- lexicons/app.bsky.embed.record.json | 3 +- lexicons/app.bsky.labeler.defs.json | 70 +++++++ lexicons/app.bsky.labeler.getServices.json | 43 ++++ lexicons/app.bsky.labeler.service.json | 26 +++ lexicons/com.atproto.admin.defs.json | 11 +- lexicons/com.atproto.label.defs.json | 67 +++++++ packages/atproto_client/models/__init__.py | 6 + .../models/app/bsky/actor/defs.py | 34 ++++ .../models/app/bsky/embed/record.py | 1 + .../models/app/bsky/labeler/__init__.py | 6 + .../models/app/bsky/labeler/defs.py | 73 +++++++ .../models/app/bsky/labeler/get_services.py | 38 ++++ .../models/app/bsky/labeler/service.py | 65 +++++++ .../models/com/atproto/admin/defs.py | 5 + .../models/com/atproto/label/defs.py | 44 +++++ .../atproto_client/models/type_conversion.py | 1 + .../atproto_client/models/unknown_type.py | 2 + .../atproto_client/namespaces/async_ns.py | 184 ++++++++++++++++++ packages/atproto_client/namespaces/sync_ns.py | 184 ++++++++++++++++++ 26 files changed, 946 insertions(+), 4 deletions(-) create mode 100644 docs/source/atproto/atproto_client.models.app.bsky.labeler.defs.rst create mode 100644 docs/source/atproto/atproto_client.models.app.bsky.labeler.get_services.rst create mode 100644 docs/source/atproto/atproto_client.models.app.bsky.labeler.rst create mode 100644 docs/source/atproto/atproto_client.models.app.bsky.labeler.service.rst create mode 100644 lexicons/app.bsky.labeler.defs.json create mode 100644 lexicons/app.bsky.labeler.getServices.json create mode 100644 lexicons/app.bsky.labeler.service.json create mode 100644 packages/atproto_client/models/app/bsky/labeler/__init__.py create mode 100644 packages/atproto_client/models/app/bsky/labeler/defs.py create mode 100644 packages/atproto_client/models/app/bsky/labeler/get_services.py create mode 100644 packages/atproto_client/models/app/bsky/labeler/service.py diff --git a/docs/source/aliases_db.py b/docs/source/aliases_db.py index d0c4d7bf..885cb0fb 100644 --- a/docs/source/aliases_db.py +++ b/docs/source/aliases_db.py @@ -54,6 +54,9 @@ 'models.AppBskyGraphMuteActorList': 'atproto_client.models.app.bsky.graph.mute_actor_list', 'models.AppBskyGraphUnmuteActor': 'atproto_client.models.app.bsky.graph.unmute_actor', 'models.AppBskyGraphUnmuteActorList': 'atproto_client.models.app.bsky.graph.unmute_actor_list', + 'models.AppBskyLabelerDefs': 'atproto_client.models.app.bsky.labeler.defs', + 'models.AppBskyLabelerGetServices': 'atproto_client.models.app.bsky.labeler.get_services', + 'models.AppBskyLabelerService': 'atproto_client.models.app.bsky.labeler.service', 'models.AppBskyNotificationGetUnreadCount': 'atproto_client.models.app.bsky.notification.get_unread_count', 'models.AppBskyNotificationListNotifications': 'atproto_client.models.app.bsky.notification.list_notifications', 'models.AppBskyNotificationRegisterPush': 'atproto_client.models.app.bsky.notification.register_push', diff --git a/docs/source/atproto/atproto_client.models.app.bsky.labeler.defs.rst b/docs/source/atproto/atproto_client.models.app.bsky.labeler.defs.rst new file mode 100644 index 00000000..8f9e7b91 --- /dev/null +++ b/docs/source/atproto/atproto_client.models.app.bsky.labeler.defs.rst @@ -0,0 +1,7 @@ +app.bsky.labeler.defs +============================================ + +.. automodule:: atproto_client.models.app.bsky.labeler.defs + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/atproto/atproto_client.models.app.bsky.labeler.get_services.rst b/docs/source/atproto/atproto_client.models.app.bsky.labeler.get_services.rst new file mode 100644 index 00000000..e52db409 --- /dev/null +++ b/docs/source/atproto/atproto_client.models.app.bsky.labeler.get_services.rst @@ -0,0 +1,7 @@ +app.bsky.labeler.get\_services +===================================================== + +.. automodule:: atproto_client.models.app.bsky.labeler.get_services + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/atproto/atproto_client.models.app.bsky.labeler.rst b/docs/source/atproto/atproto_client.models.app.bsky.labeler.rst new file mode 100644 index 00000000..b01b4632 --- /dev/null +++ b/docs/source/atproto/atproto_client.models.app.bsky.labeler.rst @@ -0,0 +1,17 @@ +app.bsky.labeler +======================================= + +.. automodule:: atproto_client.models.app.bsky.labeler + :members: + :undoc-members: + :show-inheritance: + +Submodules +---------- + +.. toctree:: + :maxdepth: 4 + + atproto_client.models.app.bsky.labeler.defs + atproto_client.models.app.bsky.labeler.get_services + atproto_client.models.app.bsky.labeler.service diff --git a/docs/source/atproto/atproto_client.models.app.bsky.labeler.service.rst b/docs/source/atproto/atproto_client.models.app.bsky.labeler.service.rst new file mode 100644 index 00000000..54719694 --- /dev/null +++ b/docs/source/atproto/atproto_client.models.app.bsky.labeler.service.rst @@ -0,0 +1,7 @@ +app.bsky.labeler.service +=============================================== + +.. automodule:: atproto_client.models.app.bsky.labeler.service + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/atproto/atproto_client.models.app.bsky.rst b/docs/source/atproto/atproto_client.models.app.bsky.rst index f1528d27..3a4def2b 100644 --- a/docs/source/atproto/atproto_client.models.app.bsky.rst +++ b/docs/source/atproto/atproto_client.models.app.bsky.rst @@ -16,6 +16,7 @@ Subpackages atproto_client.models.app.bsky.embed atproto_client.models.app.bsky.feed atproto_client.models.app.bsky.graph + atproto_client.models.app.bsky.labeler atproto_client.models.app.bsky.notification atproto_client.models.app.bsky.richtext atproto_client.models.app.bsky.unspecced diff --git a/lexicons/app.bsky.actor.defs.json b/lexicons/app.bsky.actor.defs.json index 4764c7c1..c0dd41d3 100644 --- a/lexicons/app.bsky.actor.defs.json +++ b/lexicons/app.bsky.actor.defs.json @@ -67,6 +67,10 @@ "followersCount": { "type": "integer" }, "followsCount": { "type": "integer" }, "postsCount": { "type": "integer" }, + "associated": { + "type": "ref", + "ref": "#profileAssociated" + }, "indexedAt": { "type": "string", "format": "datetime" }, "viewer": { "type": "ref", "ref": "#viewerState" }, "labels": { @@ -75,6 +79,14 @@ } } }, + "profileAssociated": { + "type": "object", + "properties": { + "lists": { "type": "integer" }, + "feedgens": { "type": "integer" }, + "labeler": { "type": "boolean" } + } + }, "viewerState": { "type": "object", "description": "Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.", @@ -122,10 +134,15 @@ "type": "object", "required": ["label", "visibility"], "properties": { + "labelerDid": { + "type": "string", + "description": "Which labeler does this preference apply to? If undefined, applies globally.", + "format": "did" + }, "label": { "type": "string" }, "visibility": { "type": "string", - "knownValues": ["show", "warn", "hide"] + "knownValues": ["ignore", "show", "warn", "hide"] } } }, @@ -176,7 +193,8 @@ }, "hideRepliesByUnfollowed": { "type": "boolean", - "description": "Hide replies in the feed if they are not by followed users." + "description": "Hide replies in the feed if they are not by followed users.", + "default": true }, "hideRepliesByLikeCount": { "type": "integer", @@ -269,6 +287,29 @@ "description": "A list of URIs of posts the account owner has hidden." } } + }, + "modsPref": { + "type": "object", + "required": ["mods"], + "properties": { + "mods": { + "type": "array", + "items": { + "type": "ref", + "ref": "#modPrefItem" + } + } + } + }, + "modPrefItem": { + "type": "object", + "required": ["did"], + "properties": { + "did": { + "type": "string", + "format": "did" + } + } } } } diff --git a/lexicons/app.bsky.embed.record.json b/lexicons/app.bsky.embed.record.json index fff97302..73b9488f 100644 --- a/lexicons/app.bsky.embed.record.json +++ b/lexicons/app.bsky.embed.record.json @@ -21,7 +21,8 @@ "#viewNotFound", "#viewBlocked", "app.bsky.feed.defs#generatorView", - "app.bsky.graph.defs#listView" + "app.bsky.graph.defs#listView", + "app.bsky.labeler.defs#labelerView" ] } } diff --git a/lexicons/app.bsky.labeler.defs.json b/lexicons/app.bsky.labeler.defs.json new file mode 100644 index 00000000..e122ef55 --- /dev/null +++ b/lexicons/app.bsky.labeler.defs.json @@ -0,0 +1,70 @@ +{ + "lexicon": 1, + "id": "app.bsky.labeler.defs", + "defs": { + "labelerView": { + "type": "object", + "required": ["uri", "cid", "creator", "indexedAt"], + "properties": { + "uri": { "type": "string", "format": "at-uri" }, + "cid": { "type": "string", "format": "cid" }, + "creator": { "type": "ref", "ref": "app.bsky.actor.defs#profileView" }, + "likeCount": { "type": "integer", "minimum": 0 }, + "viewer": { "type": "ref", "ref": "#labelerViewerState" }, + "indexedAt": { "type": "string", "format": "datetime" }, + "labels": { + "type": "array", + "items": { "type": "ref", "ref": "com.atproto.label.defs#label" } + } + } + }, + "labelerViewDetailed": { + "type": "object", + "required": ["uri", "cid", "creator", "policies", "indexedAt"], + "properties": { + "uri": { "type": "string", "format": "at-uri" }, + "cid": { "type": "string", "format": "cid" }, + "creator": { "type": "ref", "ref": "app.bsky.actor.defs#profileView" }, + "policies": { + "type": "ref", + "ref": "app.bsky.labeler.defs#labelerPolicies" + }, + "likeCount": { "type": "integer", "minimum": 0 }, + "viewer": { "type": "ref", "ref": "#labelerViewerState" }, + "indexedAt": { "type": "string", "format": "datetime" }, + "labels": { + "type": "array", + "items": { "type": "ref", "ref": "com.atproto.label.defs#label" } + } + } + }, + "labelerViewerState": { + "type": "object", + "properties": { + "like": { "type": "string", "format": "at-uri" } + } + }, + "labelerPolicies": { + "type": "object", + "required": ["labelValues"], + "properties": { + "labelValues": { + "type": "array", + "description": "The label values which this labeler publishes. May include global or custom labels.", + "items": { + "type": "ref", + "ref": "com.atproto.label.defs#labelValue" + } + }, + "labelValueDefinitions": { + "type": "array", + "description": "Label values created by this labeler and scoped exclusively to it. Labels defined here will override global label definitions for this labeler.", + "items": { + "type": "ref", + "ref": "com.atproto.label.defs#labelValueDefinition" + } + } + } + } + } +} diff --git a/lexicons/app.bsky.labeler.getServices.json b/lexicons/app.bsky.labeler.getServices.json new file mode 100644 index 00000000..df6844e6 --- /dev/null +++ b/lexicons/app.bsky.labeler.getServices.json @@ -0,0 +1,43 @@ +{ + "lexicon": 1, + "id": "app.bsky.labeler.getServices", + "defs": { + "main": { + "type": "query", + "description": "Get information about a list of labeler services.", + "parameters": { + "type": "params", + "required": ["dids"], + "properties": { + "dids": { + "type": "array", + "items": { "type": "string", "format": "did" } + }, + "detailed": { + "type": "boolean", + "default": false + } + } + }, + "output": { + "encoding": "application/json", + "schema": { + "type": "object", + "required": ["views"], + "properties": { + "views": { + "type": "array", + "items": { + "type": "union", + "refs": [ + "app.bsky.labeler.defs#labelerView", + "app.bsky.labeler.defs#labelerViewDetailed" + ] + } + } + } + } + } + } + } +} diff --git a/lexicons/app.bsky.labeler.service.json b/lexicons/app.bsky.labeler.service.json new file mode 100644 index 00000000..a1ae011b --- /dev/null +++ b/lexicons/app.bsky.labeler.service.json @@ -0,0 +1,26 @@ +{ + "lexicon": 1, + "id": "app.bsky.labeler.service", + "defs": { + "main": { + "type": "record", + "description": "A declaration of the existence of labeler service.", + "key": "literal:self", + "record": { + "type": "object", + "required": ["policies", "createdAt"], + "properties": { + "policies": { + "type": "ref", + "ref": "app.bsky.labeler.defs#labelerPolicies" + }, + "labels": { + "type": "union", + "refs": ["com.atproto.label.defs#selfLabels"] + }, + "createdAt": { "type": "string", "format": "datetime" } + } + } + } + } +} diff --git a/lexicons/com.atproto.admin.defs.json b/lexicons/com.atproto.admin.defs.json index d2056f77..1dc49444 100644 --- a/lexicons/com.atproto.admin.defs.json +++ b/lexicons/com.atproto.admin.defs.json @@ -449,7 +449,12 @@ }, "subjectReviewState": { "type": "string", - "knownValues": ["#reviewOpen", "#reviewEscalated", "#reviewClosed"] + "knownValues": [ + "#reviewOpen", + "#reviewEscalated", + "#reviewClosed", + "#reviewNone" + ] }, "reviewOpen": { "type": "token", @@ -463,6 +468,10 @@ "type": "token", "description": "Moderator review status of a subject: Closed. Indicates that the subject was already reviewed and resolved by a moderator" }, + "reviewNone": { + "type": "token", + "description": "Moderator review status of a subject: Unnecessary. Indicates that the subject does not need a review at the moment but there is probably some moderation related metadata available for it" + }, "modEventTakedown": { "type": "object", "description": "Take down a subject permanently or temporarily", diff --git a/lexicons/com.atproto.label.defs.json b/lexicons/com.atproto.label.defs.json index 06e4e8f9..cd8e03e1 100644 --- a/lexicons/com.atproto.label.defs.json +++ b/lexicons/com.atproto.label.defs.json @@ -61,6 +61,73 @@ "description": "The short string name of the value or type of this label." } } + }, + "labelValueDefinition": { + "type": "object", + "description": "Declares a label value and its expected interpertations and behaviors.", + "required": ["identifier", "severity", "blurs", "locales"], + "properties": { + "identifier": { + "type": "string", + "description": "The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).", + "maxLength": 100, + "maxGraphemes": 100 + }, + "severity": { + "type": "string", + "description": "How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.", + "knownValues": ["inform", "alert", "none"] + }, + "blurs": { + "type": "string", + "description": "What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.", + "knownValues": ["content", "media", "none"] + }, + "locales": { + "type": "array", + "items": { "type": "ref", "ref": "#labelValueDefinitionStrings" } + } + } + }, + "labelValueDefinitionStrings": { + "type": "object", + "description": "Strings which describe the label in the UI, localized into a specific language.", + "required": ["lang", "name", "description"], + "properties": { + "lang": { + "type": "string", + "description": "The code of the language these strings are written in.", + "format": "language" + }, + "name": { + "type": "string", + "description": "A short human-readable name for the label.", + "maxGraphemes": 64, + "maxLength": 640 + }, + "description": { + "type": "string", + "description": "A longer description of what the label means and why it might be applied.", + "maxGraphemes": 10000, + "maxLength": 100000 + } + } + }, + "labelValue": { + "type": "string", + "knownValues": [ + "!hide", + "!no-promote", + "!warn", + "!no-unauthenticated", + "dmca-violation", + "doxxing", + "porn", + "sexual", + "nudity", + "nsfl", + "gore" + ] } } } diff --git a/packages/atproto_client/models/__init__.py b/packages/atproto_client/models/__init__.py index 4ce68a5d..7b9383fe 100644 --- a/packages/atproto_client/models/__init__.py +++ b/packages/atproto_client/models/__init__.py @@ -55,6 +55,9 @@ from atproto_client.models.app.bsky.graph import mute_actor_list as AppBskyGraphMuteActorList from atproto_client.models.app.bsky.graph import unmute_actor as AppBskyGraphUnmuteActor from atproto_client.models.app.bsky.graph import unmute_actor_list as AppBskyGraphUnmuteActorList +from atproto_client.models.app.bsky.labeler import defs as AppBskyLabelerDefs +from atproto_client.models.app.bsky.labeler import get_services as AppBskyLabelerGetServices +from atproto_client.models.app.bsky.labeler import service as AppBskyLabelerService from atproto_client.models.app.bsky.notification import get_unread_count as AppBskyNotificationGetUnreadCount from atproto_client.models.app.bsky.notification import list_notifications as AppBskyNotificationListNotifications from atproto_client.models.app.bsky.notification import register_push as AppBskyNotificationRegisterPush @@ -235,6 +238,9 @@ class _Ids: AppBskyGraphMuteActorList: str = 'app.bsky.graph.muteActorList' AppBskyGraphUnmuteActor: str = 'app.bsky.graph.unmuteActor' AppBskyGraphUnmuteActorList: str = 'app.bsky.graph.unmuteActorList' + AppBskyLabelerDefs: str = 'app.bsky.labeler.defs' + AppBskyLabelerGetServices: str = 'app.bsky.labeler.getServices' + AppBskyLabelerService: str = 'app.bsky.labeler.service' AppBskyNotificationGetUnreadCount: str = 'app.bsky.notification.getUnreadCount' AppBskyNotificationListNotifications: str = 'app.bsky.notification.listNotifications' AppBskyNotificationRegisterPush: str = 'app.bsky.notification.registerPush' diff --git a/packages/atproto_client/models/app/bsky/actor/defs.py b/packages/atproto_client/models/app/bsky/actor/defs.py index 20a7cea5..3cd591f9 100644 --- a/packages/atproto_client/models/app/bsky/actor/defs.py +++ b/packages/atproto_client/models/app/bsky/actor/defs.py @@ -52,6 +52,7 @@ class ProfileViewDetailed(base.ModelBase): did: str #: Did. handle: str #: Handle. + associated: t.Optional['models.AppBskyActorDefs.ProfileAssociated'] = None #: Associated. avatar: t.Optional[str] = None #: Avatar. banner: t.Optional[str] = None #: Banner. description: t.Optional[str] = Field(default=None, max_length=2560) #: Description. @@ -68,6 +69,18 @@ class ProfileViewDetailed(base.ModelBase): ) +class ProfileAssociated(base.ModelBase): + """Definition model for :obj:`app.bsky.actor.defs`.""" + + feedgens: t.Optional[int] = None #: Feedgens. + labeler: t.Optional[bool] = None #: Labeler. + lists: t.Optional[int] = None #: Lists. + + py_type: te.Literal['app.bsky.actor.defs#profileAssociated'] = Field( + default='app.bsky.actor.defs#profileAssociated', alias='$type', frozen=True + ) + + class ViewerState(base.ModelBase): """Definition model for :obj:`app.bsky.actor.defs`. Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.""" @@ -117,6 +130,7 @@ class ContentLabelPref(base.ModelBase): label: str #: Label. visibility: str #: Visibility. + labeler_did: t.Optional[str] = None #: Which labeler does this preference apply to? If undefined, applies globally. py_type: te.Literal['app.bsky.actor.defs#contentLabelPref'] = Field( default='app.bsky.actor.defs#contentLabelPref', alias='$type', frozen=True @@ -217,3 +231,23 @@ class HiddenPostsPref(base.ModelBase): py_type: te.Literal['app.bsky.actor.defs#hiddenPostsPref'] = Field( default='app.bsky.actor.defs#hiddenPostsPref', alias='$type', frozen=True ) + + +class ModsPref(base.ModelBase): + """Definition model for :obj:`app.bsky.actor.defs`.""" + + mods: t.List['models.AppBskyActorDefs.ModPrefItem'] #: Mods. + + py_type: te.Literal['app.bsky.actor.defs#modsPref'] = Field( + default='app.bsky.actor.defs#modsPref', alias='$type', frozen=True + ) + + +class ModPrefItem(base.ModelBase): + """Definition model for :obj:`app.bsky.actor.defs`.""" + + did: str #: Did. + + py_type: te.Literal['app.bsky.actor.defs#modPrefItem'] = Field( + default='app.bsky.actor.defs#modPrefItem', alias='$type', frozen=True + ) diff --git a/packages/atproto_client/models/app/bsky/embed/record.py b/packages/atproto_client/models/app/bsky/embed/record.py index 67e79b5c..727d2190 100644 --- a/packages/atproto_client/models/app/bsky/embed/record.py +++ b/packages/atproto_client/models/app/bsky/embed/record.py @@ -34,6 +34,7 @@ class View(base.ModelBase): 'models.AppBskyEmbedRecord.ViewBlocked', 'models.AppBskyFeedDefs.GeneratorView', 'models.AppBskyGraphDefs.ListView', + 'models.AppBskyLabelerDefs.LabelerView', ], Field(discriminator='py_type'), ] #: Record. diff --git a/packages/atproto_client/models/app/bsky/labeler/__init__.py b/packages/atproto_client/models/app/bsky/labeler/__init__.py new file mode 100644 index 00000000..911f3515 --- /dev/null +++ b/packages/atproto_client/models/app/bsky/labeler/__init__.py @@ -0,0 +1,6 @@ +################################################################## +# THIS IS THE AUTO-GENERATED CODE. DON'T EDIT IT BY HANDS! +# Copyright (C) 2023 Ilya (Marshal) . +# This file is part of Python atproto SDK. Licenced under MIT. +################################################################## + diff --git a/packages/atproto_client/models/app/bsky/labeler/defs.py b/packages/atproto_client/models/app/bsky/labeler/defs.py new file mode 100644 index 00000000..a37f0a1b --- /dev/null +++ b/packages/atproto_client/models/app/bsky/labeler/defs.py @@ -0,0 +1,73 @@ +################################################################## +# THIS IS THE AUTO-GENERATED CODE. DON'T EDIT IT BY HANDS! +# Copyright (C) 2023 Ilya (Marshal) . +# This file is part of Python atproto SDK. Licenced under MIT. +################################################################## + + +import typing as t + +import typing_extensions as te +from pydantic import Field + +if t.TYPE_CHECKING: + from atproto_client import models +from atproto_client.models import base + + +class LabelerView(base.ModelBase): + """Definition model for :obj:`app.bsky.labeler.defs`.""" + + cid: str #: Cid. + creator: 'models.AppBskyActorDefs.ProfileView' #: Creator. + indexed_at: str #: Indexed at. + uri: str #: Uri. + labels: t.Optional[t.List['models.ComAtprotoLabelDefs.Label']] = None #: Labels. + like_count: t.Optional[int] = Field(default=None, ge=0) #: Like count. + viewer: t.Optional['models.AppBskyLabelerDefs.LabelerViewerState'] = None #: Viewer. + + py_type: te.Literal['app.bsky.labeler.defs#labelerView'] = Field( + default='app.bsky.labeler.defs#labelerView', alias='$type', frozen=True + ) + + +class LabelerViewDetailed(base.ModelBase): + """Definition model for :obj:`app.bsky.labeler.defs`.""" + + cid: str #: Cid. + creator: 'models.AppBskyActorDefs.ProfileView' #: Creator. + indexed_at: str #: Indexed at. + policies: 'models.AppBskyLabelerDefs.LabelerPolicies' #: Policies. + uri: str #: Uri. + labels: t.Optional[t.List['models.ComAtprotoLabelDefs.Label']] = None #: Labels. + like_count: t.Optional[int] = Field(default=None, ge=0) #: Like count. + viewer: t.Optional['models.AppBskyLabelerDefs.LabelerViewerState'] = None #: Viewer. + + py_type: te.Literal['app.bsky.labeler.defs#labelerViewDetailed'] = Field( + default='app.bsky.labeler.defs#labelerViewDetailed', alias='$type', frozen=True + ) + + +class LabelerViewerState(base.ModelBase): + """Definition model for :obj:`app.bsky.labeler.defs`.""" + + like: t.Optional[str] = None #: Like. + + py_type: te.Literal['app.bsky.labeler.defs#labelerViewerState'] = Field( + default='app.bsky.labeler.defs#labelerViewerState', alias='$type', frozen=True + ) + + +class LabelerPolicies(base.ModelBase): + """Definition model for :obj:`app.bsky.labeler.defs`.""" + + label_values: t.List[ + 'models.ComAtprotoLabelDefs.LabelValue' + ] #: The label values which this labeler publishes. May include global or custom labels. + label_value_definitions: t.Optional[ + t.List['models.ComAtprotoLabelDefs.LabelValueDefinition'] + ] = None #: Label values created by this labeler and scoped exclusively to it. Labels defined here will override global label definitions for this labeler. + + py_type: te.Literal['app.bsky.labeler.defs#labelerPolicies'] = Field( + default='app.bsky.labeler.defs#labelerPolicies', alias='$type', frozen=True + ) diff --git a/packages/atproto_client/models/app/bsky/labeler/get_services.py b/packages/atproto_client/models/app/bsky/labeler/get_services.py new file mode 100644 index 00000000..ee028eab --- /dev/null +++ b/packages/atproto_client/models/app/bsky/labeler/get_services.py @@ -0,0 +1,38 @@ +################################################################## +# THIS IS THE AUTO-GENERATED CODE. DON'T EDIT IT BY HANDS! +# Copyright (C) 2023 Ilya (Marshal) . +# This file is part of Python atproto SDK. Licenced under MIT. +################################################################## + + +import typing as t + +import typing_extensions as te +from pydantic import Field + +if t.TYPE_CHECKING: + from atproto_client import models +from atproto_client.models import base + + +class Params(base.ParamsModelBase): + """Parameters model for :obj:`app.bsky.labeler.getServices`.""" + + dids: t.List[str] #: Dids. + detailed: t.Optional[bool] = None #: Detailed. + + +class ParamsDict(te.TypedDict): + dids: t.List[str] #: Dids. + detailed: te.NotRequired[t.Optional[bool]] #: Detailed. + + +class Response(base.ResponseModelBase): + """Output data model for :obj:`app.bsky.labeler.getServices`.""" + + views: t.List[ + te.Annotated[ + t.Union['models.AppBskyLabelerDefs.LabelerView', 'models.AppBskyLabelerDefs.LabelerViewDetailed'], + Field(discriminator='py_type'), + ] + ] #: Views. diff --git a/packages/atproto_client/models/app/bsky/labeler/service.py b/packages/atproto_client/models/app/bsky/labeler/service.py new file mode 100644 index 00000000..b4375490 --- /dev/null +++ b/packages/atproto_client/models/app/bsky/labeler/service.py @@ -0,0 +1,65 @@ +################################################################## +# THIS IS THE AUTO-GENERATED CODE. DON'T EDIT IT BY HANDS! +# Copyright (C) 2023 Ilya (Marshal) . +# This file is part of Python atproto SDK. Licenced under MIT. +################################################################## + + +import typing as t + +import typing_extensions as te +from pydantic import Field + +if t.TYPE_CHECKING: + from atproto_client import models +from atproto_client.models import base + + +class Record(base.RecordModelBase): + """Record model for :obj:`app.bsky.labeler.service`.""" + + created_at: str #: Created at. + policies: 'models.AppBskyLabelerDefs.LabelerPolicies' #: Policies. + labels: t.Optional[ + te.Annotated[t.Union['models.ComAtprotoLabelDefs.SelfLabels'], Field(default=None, discriminator='py_type')] + ] = None #: Labels. + + py_type: te.Literal['app.bsky.labeler.service'] = Field( + default='app.bsky.labeler.service', alias='$type', frozen=True + ) + + +class Main(Record): + def __init_subclass__(cls, **data: t.Any) -> None: + import warnings + + warnings.warn('Main class is deprecated. Use Record class instead.', DeprecationWarning, stacklevel=2) + super().__init_subclass__(**data) + + def __init__(self, **data: t.Any) -> None: + import warnings + + warnings.warn('Main class is deprecated. Use Record class instead.', DeprecationWarning, stacklevel=2) + super().__init__(**data) + + +class GetRecordResponse(base.SugarResponseModelBase): + """Get record response for :obj:`models.AppBskyLabelerService.Record`.""" + + uri: str #: The URI of the record. + value: 'models.AppBskyLabelerService.Record' #: The record. + cid: t.Optional[str] = None #: The CID of the record. + + +class ListRecordsResponse(base.SugarResponseModelBase): + """List records response for :obj:`models.AppBskyLabelerService.Record`.""" + + records: t.Dict[str, 'models.AppBskyLabelerService.Record'] #: Map of URIs to records. + cursor: t.Optional[str] = None #: Next page cursor. + + +class CreateRecordResponse(base.SugarResponseModelBase): + """Create record response for :obj:`models.AppBskyLabelerService.Record`.""" + + uri: str #: The URI of the record. + cid: str #: The CID of the record. diff --git a/packages/atproto_client/models/com/atproto/admin/defs.py b/packages/atproto_client/models/com/atproto/admin/defs.py index debdbf10..47eb6d17 100644 --- a/packages/atproto_client/models/com/atproto/admin/defs.py +++ b/packages/atproto_client/models/com/atproto/admin/defs.py @@ -376,6 +376,7 @@ class VideoDetails(base.ModelBase): 'models.ComAtprotoAdminDefs.ReviewOpen', 'models.ComAtprotoAdminDefs.ReviewEscalated', 'models.ComAtprotoAdminDefs.ReviewClosed', + 'models.ComAtprotoAdminDefs.ReviewNone', ] #: Subject review state ReviewOpen = te.Literal[ @@ -390,6 +391,10 @@ class VideoDetails(base.ModelBase): 'com.atproto.admin.defs#reviewClosed' ] #: Moderator review status of a subject: Closed. Indicates that the subject was already reviewed and resolved by a moderator +ReviewNone = te.Literal[ + 'com.atproto.admin.defs#reviewNone' +] #: Moderator review status of a subject: Unnecessary. Indicates that the subject does not need a review at the moment but there is probably some moderation related metadata available for it + class ModEventTakedown(base.ModelBase): """Definition model for :obj:`com.atproto.admin.defs`. Take down a subject permanently or temporarily.""" diff --git a/packages/atproto_client/models/com/atproto/label/defs.py b/packages/atproto_client/models/com/atproto/label/defs.py index 2b9df968..0d136818 100644 --- a/packages/atproto_client/models/com/atproto/label/defs.py +++ b/packages/atproto_client/models/com/atproto/label/defs.py @@ -50,3 +50,47 @@ class SelfLabel(base.ModelBase): py_type: te.Literal['com.atproto.label.defs#selfLabel'] = Field( default='com.atproto.label.defs#selfLabel', alias='$type', frozen=True ) + + +class LabelValueDefinition(base.ModelBase): + """Definition model for :obj:`com.atproto.label.defs`. Declares a label value and its expected interpertations and behaviors.""" + + blurs: str #: What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing. + identifier: str = Field( + max_length=100 + ) #: The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+). + locales: t.List['models.ComAtprotoLabelDefs.LabelValueDefinitionStrings'] #: Locales. + severity: str #: How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing. + + py_type: te.Literal['com.atproto.label.defs#labelValueDefinition'] = Field( + default='com.atproto.label.defs#labelValueDefinition', alias='$type', frozen=True + ) + + +class LabelValueDefinitionStrings(base.ModelBase): + """Definition model for :obj:`com.atproto.label.defs`. Strings which describe the label in the UI, localized into a specific language.""" + + description: str = Field( + max_length=100000 + ) #: A longer description of what the label means and why it might be applied. + lang: str #: The code of the language these strings are written in. + name: str = Field(max_length=640) #: A short human-readable name for the label. + + py_type: te.Literal['com.atproto.label.defs#labelValueDefinitionStrings'] = Field( + default='com.atproto.label.defs#labelValueDefinitionStrings', alias='$type', frozen=True + ) + + +LabelValue = t.Union[ + te.Literal['!hide'], + te.Literal['!no-promote'], + te.Literal['!warn'], + te.Literal['!no-unauthenticated'], + te.Literal['dmca-violation'], + te.Literal['doxxing'], + te.Literal['porn'], + te.Literal['sexual'], + te.Literal['nudity'], + te.Literal['nsfl'], + te.Literal['gore'], +] #: Label value diff --git a/packages/atproto_client/models/type_conversion.py b/packages/atproto_client/models/type_conversion.py index d904663a..cdf25201 100644 --- a/packages/atproto_client/models/type_conversion.py +++ b/packages/atproto_client/models/type_conversion.py @@ -12,4 +12,5 @@ 'app.bsky.graph.list': models.AppBskyGraphList.Record, 'app.bsky.graph.listblock': models.AppBskyGraphListblock.Record, 'app.bsky.graph.listitem': models.AppBskyGraphListitem.Record, + 'app.bsky.labeler.service': models.AppBskyLabelerService.Record, } diff --git a/packages/atproto_client/models/unknown_type.py b/packages/atproto_client/models/unknown_type.py index 84e9b3d7..95388278 100644 --- a/packages/atproto_client/models/unknown_type.py +++ b/packages/atproto_client/models/unknown_type.py @@ -19,6 +19,7 @@ 'models.AppBskyGraphList.Record', 'models.AppBskyGraphListblock.Record', 'models.AppBskyGraphListitem.Record', + 'models.AppBskyLabelerService.Record', ] UnknownRecordTypePydantic = te.Annotated[ t.Union[ @@ -33,6 +34,7 @@ 'models.AppBskyGraphList.Record', 'models.AppBskyGraphListblock.Record', 'models.AppBskyGraphListitem.Record', + 'models.AppBskyLabelerService.Record', ], Field(discriminator='py_type'), ] diff --git a/packages/atproto_client/namespaces/async_ns.py b/packages/atproto_client/namespaces/async_ns.py index bd758fcc..5ea1217b 100644 --- a/packages/atproto_client/namespaces/async_ns.py +++ b/packages/atproto_client/namespaces/async_ns.py @@ -27,6 +27,7 @@ def __init__(self, client: 'AsyncClientRaw') -> None: self.actor = ActorNamespace(self._client) self.feed = FeedNamespace(self._client) self.graph = GraphNamespace(self._client) + self.labeler = LabelerNamespace(self._client) self.notification = NotificationNamespace(self._client) self.unspecced = UnspeccedNamespace(self._client) @@ -2661,6 +2662,189 @@ async def unmute_actor_list( return get_response_model(response, bool) +class ServiceRecord(AsyncRecordBase): + async def get( + self, repo: str, rkey: str, cid: t.Optional[str] = None, **kwargs: t.Any + ) -> 'models.AppBskyLabelerService.GetRecordResponse': + """Get a record. + + Args: + repo: The repository (DID). + rkey: The record key (TID). + cid: The CID of the record. + **kwargs: Arbitrary arguments to HTTP request. + + Returns: + :obj:`models.AppBskyLabelerService.GetRecordResponse`: Get record response. + + Raises: + :class:`atproto.exceptions.AtProtocolError`: Base exception. + """ + params_model = models.ComAtprotoRepoGetRecord.Params( + collection='app.bsky.labeler.service', repo=repo, rkey=rkey, cid=cid + ) + response = await self._client.invoke_query( + 'com.atproto.repo.getRecord', params=params_model, output_encoding='application/json', **kwargs + ) + response_model = get_response_model(response, models.ComAtprotoRepoGetRecord.Response) + return models.AppBskyLabelerService.GetRecordResponse( + uri=response_model.uri, + cid=response_model.cid, + value=t.cast('models.AppBskyLabelerService.Record', response_model.value), + ) + + async def list( + self, + repo: str, + cursor: t.Optional[str] = None, + limit: t.Optional[int] = None, + reverse: t.Optional[bool] = None, + **kwargs: t.Any, + ) -> 'models.AppBskyLabelerService.ListRecordsResponse': + """List a range of records in a collection. + + Args: + repo: The repository (DID). + cursor: The cursor. + limit: The limit. + reverse: Whether to reverse the order. + **kwargs: Arbitrary arguments to HTTP request. + + Returns: + :obj:`models.AppBskyLabelerService.ListRecordsResponse`: List records response. + + Raises: + :class:`atproto.exceptions.AtProtocolError`: Base exception. + """ + params_model = models.ComAtprotoRepoListRecords.Params( + collection='app.bsky.labeler.service', + repo=repo, + cursor=cursor, + limit=limit, + reverse=reverse, + ) + response = await self._client.invoke_query( + 'com.atproto.repo.listRecords', params=params_model, output_encoding='application/json', **kwargs + ) + response_model = get_response_model(response, models.ComAtprotoRepoListRecords.Response) + return models.AppBskyLabelerService.ListRecordsResponse( + records={ + record.uri: t.cast('models.AppBskyLabelerService.Record', record.value) + for record in response_model.records + }, + cursor=response_model.cursor, + ) + + async def create( + self, + repo: str, + record: 'models.AppBskyLabelerService.Record', + rkey: t.Optional[str] = None, + swap_commit: t.Optional[str] = None, + validate: t.Optional[bool] = True, + **kwargs: t.Any, + ) -> 'models.AppBskyLabelerService.CreateRecordResponse': + """Create a new record. + + Args: + repo: The repository (DID). + record: The record. + rkey: The record key (TID). + swap_commit: The swap commit. + validate: Whether to validate the record. + **kwargs: Arbitrary arguments to HTTP request. + + Returns: + :obj:`models.AppBskyLabelerService.CreateRecordResponse`: Create record response. + + Raises: + :class:`atproto.exceptions.AtProtocolError`: Base exception. + """ + data_model = models.ComAtprotoRepoCreateRecord.Data( + collection='app.bsky.labeler.service', + repo=repo, + record=record, + rkey=rkey, + swap_commit=swap_commit, + validate_=validate, + ) + response = await self._client.invoke_procedure( + 'com.atproto.repo.createRecord', + data=data_model, + input_encoding='application/json', + output_encoding='application/json', + **kwargs, + ) + response_model = get_response_model(response, models.ComAtprotoRepoCreateRecord.Response) + return models.AppBskyLabelerService.CreateRecordResponse(uri=response_model.uri, cid=response_model.cid) + + async def delete( + self, + repo: str, + rkey: str, + swap_commit: t.Optional[str] = None, + swap_record: t.Optional[str] = None, + **kwargs: t.Any, + ) -> bool: + """Delete a record, or ensure it doesn't exist. + + Args: + repo: The repository (DID). + rkey: The record key (TID). + swap_commit: The swap commit. + swap_record: The swap record. + **kwargs: Arbitrary arguments to HTTP request. + + Returns: + :obj:`bool`: Success status. + + Raises: + :class:`atproto.exceptions.AtProtocolError`: Base exception. + """ + data_model = models.ComAtprotoRepoDeleteRecord.Data( + collection='app.bsky.labeler.service', + repo=repo, + rkey=rkey, + swap_commit=swap_commit, + swap_record=swap_record, + ) + response = await self._client.invoke_procedure( + 'com.atproto.repo.deleteRecord', data=data_model, input_encoding='application/json', **kwargs + ) + return get_response_model(response, bool) + + +class LabelerNamespace(AsyncNamespaceBase): + def __init__(self, client: 'AsyncClientRaw') -> None: + super().__init__(client) + self.service = ServiceRecord(self._client) + + async def get_services( + self, + params: t.Union[models.AppBskyLabelerGetServices.Params, models.AppBskyLabelerGetServices.ParamsDict], + **kwargs: t.Any, + ) -> 'models.AppBskyLabelerGetServices.Response': + """Get information about a list of labeler services. + + Args: + params: Parameters. + **kwargs: Arbitrary arguments to HTTP request. + + Returns: + :obj:`models.AppBskyLabelerGetServices.Response`: Output model. + + Raises: + :class:`atproto.exceptions.AtProtocolError`: Base exception. + """ + params_model = t.cast( + 'models.AppBskyLabelerGetServices.Params', get_or_create(params, models.AppBskyLabelerGetServices.Params) + ) + response = await self._client.invoke_query( + 'app.bsky.labeler.getServices', params=params_model, output_encoding='application/json', **kwargs + ) + return get_response_model(response, models.AppBskyLabelerGetServices.Response) + + class NotificationNamespace(AsyncNamespaceBase): async def get_unread_count( self, diff --git a/packages/atproto_client/namespaces/sync_ns.py b/packages/atproto_client/namespaces/sync_ns.py index d2c8784d..b4310e20 100644 --- a/packages/atproto_client/namespaces/sync_ns.py +++ b/packages/atproto_client/namespaces/sync_ns.py @@ -27,6 +27,7 @@ def __init__(self, client: 'ClientRaw') -> None: self.actor = ActorNamespace(self._client) self.feed = FeedNamespace(self._client) self.graph = GraphNamespace(self._client) + self.labeler = LabelerNamespace(self._client) self.notification = NotificationNamespace(self._client) self.unspecced = UnspeccedNamespace(self._client) @@ -2661,6 +2662,189 @@ def unmute_actor_list( return get_response_model(response, bool) +class ServiceRecord(RecordBase): + def get( + self, repo: str, rkey: str, cid: t.Optional[str] = None, **kwargs: t.Any + ) -> 'models.AppBskyLabelerService.GetRecordResponse': + """Get a record. + + Args: + repo: The repository (DID). + rkey: The record key (TID). + cid: The CID of the record. + **kwargs: Arbitrary arguments to HTTP request. + + Returns: + :obj:`models.AppBskyLabelerService.GetRecordResponse`: Get record response. + + Raises: + :class:`atproto.exceptions.AtProtocolError`: Base exception. + """ + params_model = models.ComAtprotoRepoGetRecord.Params( + collection='app.bsky.labeler.service', repo=repo, rkey=rkey, cid=cid + ) + response = self._client.invoke_query( + 'com.atproto.repo.getRecord', params=params_model, output_encoding='application/json', **kwargs + ) + response_model = get_response_model(response, models.ComAtprotoRepoGetRecord.Response) + return models.AppBskyLabelerService.GetRecordResponse( + uri=response_model.uri, + cid=response_model.cid, + value=t.cast('models.AppBskyLabelerService.Record', response_model.value), + ) + + def list( + self, + repo: str, + cursor: t.Optional[str] = None, + limit: t.Optional[int] = None, + reverse: t.Optional[bool] = None, + **kwargs: t.Any, + ) -> 'models.AppBskyLabelerService.ListRecordsResponse': + """List a range of records in a collection. + + Args: + repo: The repository (DID). + cursor: The cursor. + limit: The limit. + reverse: Whether to reverse the order. + **kwargs: Arbitrary arguments to HTTP request. + + Returns: + :obj:`models.AppBskyLabelerService.ListRecordsResponse`: List records response. + + Raises: + :class:`atproto.exceptions.AtProtocolError`: Base exception. + """ + params_model = models.ComAtprotoRepoListRecords.Params( + collection='app.bsky.labeler.service', + repo=repo, + cursor=cursor, + limit=limit, + reverse=reverse, + ) + response = self._client.invoke_query( + 'com.atproto.repo.listRecords', params=params_model, output_encoding='application/json', **kwargs + ) + response_model = get_response_model(response, models.ComAtprotoRepoListRecords.Response) + return models.AppBskyLabelerService.ListRecordsResponse( + records={ + record.uri: t.cast('models.AppBskyLabelerService.Record', record.value) + for record in response_model.records + }, + cursor=response_model.cursor, + ) + + def create( + self, + repo: str, + record: 'models.AppBskyLabelerService.Record', + rkey: t.Optional[str] = None, + swap_commit: t.Optional[str] = None, + validate: t.Optional[bool] = True, + **kwargs: t.Any, + ) -> 'models.AppBskyLabelerService.CreateRecordResponse': + """Create a new record. + + Args: + repo: The repository (DID). + record: The record. + rkey: The record key (TID). + swap_commit: The swap commit. + validate: Whether to validate the record. + **kwargs: Arbitrary arguments to HTTP request. + + Returns: + :obj:`models.AppBskyLabelerService.CreateRecordResponse`: Create record response. + + Raises: + :class:`atproto.exceptions.AtProtocolError`: Base exception. + """ + data_model = models.ComAtprotoRepoCreateRecord.Data( + collection='app.bsky.labeler.service', + repo=repo, + record=record, + rkey=rkey, + swap_commit=swap_commit, + validate_=validate, + ) + response = self._client.invoke_procedure( + 'com.atproto.repo.createRecord', + data=data_model, + input_encoding='application/json', + output_encoding='application/json', + **kwargs, + ) + response_model = get_response_model(response, models.ComAtprotoRepoCreateRecord.Response) + return models.AppBskyLabelerService.CreateRecordResponse(uri=response_model.uri, cid=response_model.cid) + + def delete( + self, + repo: str, + rkey: str, + swap_commit: t.Optional[str] = None, + swap_record: t.Optional[str] = None, + **kwargs: t.Any, + ) -> bool: + """Delete a record, or ensure it doesn't exist. + + Args: + repo: The repository (DID). + rkey: The record key (TID). + swap_commit: The swap commit. + swap_record: The swap record. + **kwargs: Arbitrary arguments to HTTP request. + + Returns: + :obj:`bool`: Success status. + + Raises: + :class:`atproto.exceptions.AtProtocolError`: Base exception. + """ + data_model = models.ComAtprotoRepoDeleteRecord.Data( + collection='app.bsky.labeler.service', + repo=repo, + rkey=rkey, + swap_commit=swap_commit, + swap_record=swap_record, + ) + response = self._client.invoke_procedure( + 'com.atproto.repo.deleteRecord', data=data_model, input_encoding='application/json', **kwargs + ) + return get_response_model(response, bool) + + +class LabelerNamespace(NamespaceBase): + def __init__(self, client: 'ClientRaw') -> None: + super().__init__(client) + self.service = ServiceRecord(self._client) + + def get_services( + self, + params: t.Union[models.AppBskyLabelerGetServices.Params, models.AppBskyLabelerGetServices.ParamsDict], + **kwargs: t.Any, + ) -> 'models.AppBskyLabelerGetServices.Response': + """Get information about a list of labeler services. + + Args: + params: Parameters. + **kwargs: Arbitrary arguments to HTTP request. + + Returns: + :obj:`models.AppBskyLabelerGetServices.Response`: Output model. + + Raises: + :class:`atproto.exceptions.AtProtocolError`: Base exception. + """ + params_model = t.cast( + 'models.AppBskyLabelerGetServices.Params', get_or_create(params, models.AppBskyLabelerGetServices.Params) + ) + response = self._client.invoke_query( + 'app.bsky.labeler.getServices', params=params_model, output_encoding='application/json', **kwargs + ) + return get_response_model(response, models.AppBskyLabelerGetServices.Response) + + class NotificationNamespace(NamespaceBase): def get_unread_count( self,