At

 view release on metacpan or  search on metacpan

share/lexicons/app/bsky/actor/defs.json  view on Meta::CPAN

162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
  "type": "array",
  "items": {
    "type": "union",
    "refs": [
      "#adultContentPref",
      "#contentLabelPref",
      "#savedFeedsPref",
      "#savedFeedsPrefV2",
      "#personalDetailsPref",
      "#feedViewPref",
      "#threadViewPref",
      "#interestsPref",
      "#mutedWordsPref",
      "#hiddenPostsPref",
      "#bskyAppStatePref",
      "#labelersPref"
    ]
  }
},
"adultContentPref": {
  "type": "object",

share/lexicons/app/bsky/actor/defs.json  view on Meta::CPAN

290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
    "hideReposts": {
      "type": "boolean",
      "description": "Hide reposts in the feed."
    },
    "hideQuotePosts": {
      "type": "boolean",
      "description": "Hide quote posts in the feed."
    }
  }
},
"threadViewPref": {
  "type": "object",
  "properties": {
    "sort": {
      "type": "string",
      "description": "Sorting mode for threads.",
      "knownValues": ["oldest", "newest", "most-likes", "random", "hotness"]
    },
    "prioritizeFollowedUsers": {
      "type": "boolean",
      "description": "Show followed users at the top of all replies."
    }
  }
},
"interestsPref": {
  "type": "object",

share/lexicons/app/bsky/feed/defs.json  view on Meta::CPAN

26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
    "replyCount": { "type": "integer" },
    "repostCount": { "type": "integer" },
    "likeCount": { "type": "integer" },
    "quoteCount": { "type": "integer" },
    "indexedAt": { "type": "string", "format": "datetime" },
    "viewer": { "type": "ref", "ref": "#viewerState" },
    "labels": {
      "type": "array",
      "items": { "type": "ref", "ref": "com.atproto.label.defs#label" }
    },
    "threadgate": { "type": "ref", "ref": "#threadgateView" }
  }
},
"viewerState": {
  "type": "object",
  "description": "Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests.",
  "properties": {
    "repost": { "type": "string", "format": "at-uri" },
    "like": { "type": "string", "format": "at-uri" },
    "threadMuted": { "type": "boolean" },
    "replyDisabled": { "type": "boolean" },
    "embeddingDisabled": { "type": "boolean" },
    "pinned": { "type": "boolean" }
  }
},
"feedViewPost": {
  "type": "object",
  "required": ["post"],
  "properties": {
    "post": { "type": "ref", "ref": "#postView" },

share/lexicons/app/bsky/feed/defs.json  view on Meta::CPAN

86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
  "required": ["by", "indexedAt"],
  "properties": {
    "by": { "type": "ref", "ref": "app.bsky.actor.defs#profileViewBasic" },
    "indexedAt": { "type": "string", "format": "datetime" }
  }
},
"reasonPin": {
  "type": "object",
  "properties": {}
},
"threadViewPost": {
  "type": "object",
  "required": ["post"],
  "properties": {
    "post": { "type": "ref", "ref": "#postView" },
    "parent": {
      "type": "union",
      "refs": ["#threadViewPost", "#notFoundPost", "#blockedPost"]
    },
    "replies": {
      "type": "array",
      "items": {
        "type": "union",
        "refs": ["#threadViewPost", "#notFoundPost", "#blockedPost"]
      }
    }
  }
},
"notFoundPost": {
  "type": "object",
  "required": ["uri", "notFound"],
  "properties": {
    "uri": { "type": "string", "format": "at-uri" },
    "notFound": { "type": "boolean", "const": true }

share/lexicons/app/bsky/feed/defs.json  view on Meta::CPAN

191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
  "type": "object",
  "required": ["repost"],
  "properties": {
    "repost": { "type": "string", "format": "at-uri" }
  }
},
"skeletonReasonPin": {
  "type": "object",
  "properties": {}
},
"threadgateView": {
  "type": "object",
  "properties": {
    "uri": { "type": "string", "format": "at-uri" },
    "cid": { "type": "string", "format": "cid" },
    "record": { "type": "unknown" },
    "lists": {
      "type": "array",
      "items": { "type": "ref", "ref": "app.bsky.graph.defs#listViewBasic" }
    }
  }

share/lexicons/app/bsky/feed/getAuthorFeed.json  view on Meta::CPAN

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
      "default": 50
    },
    "cursor": { "type": "string" },
    "filter": {
      "type": "string",
      "description": "Combinations of post/repost types to include in response.",
      "knownValues": [
        "posts_with_replies",
        "posts_no_replies",
        "posts_with_media",
        "posts_and_author_threads"
      ],
      "default": "posts_with_replies"
    },
    "includePins": {
      "type": "boolean",
      "default": false
    }
  }
},
"output": {

share/lexicons/app/bsky/feed/getPostThread.json  view on Meta::CPAN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "lexicon": 1,
  "id": "app.bsky.feed.getPostThread",
  "defs": {
    "main": {
      "type": "query",
      "description": "Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests.",
      "parameters": {
        "type": "params",
        "required": ["uri"],
        "properties": {
          "uri": {
            "type": "string",
            "format": "at-uri",
            "description": "Reference (AT-URI) to post record."
          },
          "depth": {

share/lexicons/app/bsky/feed/getPostThread.json  view on Meta::CPAN

27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
            "default": 80,
            "minimum": 0,
            "maximum": 1000
          }
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "type": "object",
          "required": ["thread"],
          "properties": {
            "thread": {
              "type": "union",
              "refs": [
                "app.bsky.feed.defs#threadViewPost",
                "app.bsky.feed.defs#notFoundPost",
                "app.bsky.feed.defs#blockedPost"
              ]
            },
            "threadgate": {
              "type": "ref",
              "ref": "app.bsky.feed.defs#threadgateView"
            }
          }
        }
      },
      "errors": [{ "name": "NotFound" }]
    }
  }
}

share/lexicons/app/bsky/feed/threadgate.json  view on Meta::CPAN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
  "lexicon": 1,
  "id": "app.bsky.feed.threadgate",
  "defs": {
    "main": {
      "type": "record",
      "key": "tid",
      "description": "Record defining interaction gating rules for a thread (aka, reply controls). The record key (rkey) of the threadgate record must match the record key of the thread's root post, and that record must be in the same repository.",
      "record": {
        "type": "object",
        "required": ["post", "createdAt"],
        "properties": {
          "post": {
            "type": "string",
            "format": "at-uri",
            "description": "Reference (AT-URI) to the post record."
          },
          "allow": {

share/lexicons/app/bsky/graph/muteThread.json  view on Meta::CPAN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "lexicon": 1,
  "id": "app.bsky.graph.muteThread",
  "defs": {
    "main": {
      "type": "procedure",
      "description": "Mutes a thread preventing notifications from the thread and any of its children. Mutes are private in Bluesky. Requires auth.",
      "input": {
        "encoding": "application/json",
        "schema": {
          "type": "object",
          "required": ["root"],
          "properties": {
            "root": { "type": "string", "format": "at-uri" }
          }
        }
      }

share/lexicons/app/bsky/graph/unmuteThread.json  view on Meta::CPAN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "lexicon": 1,
  "id": "app.bsky.graph.unmuteThread",
  "defs": {
    "main": {
      "type": "procedure",
      "description": "Unmutes the specified thread. Requires auth.",
      "input": {
        "encoding": "application/json",
        "schema": {
          "type": "object",
          "required": ["root"],
          "properties": {
            "root": { "type": "string", "format": "at-uri" }
          }
        }
      }

t/00_compile.t  view on Meta::CPAN

86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
    is my $timeline = $bsky->get( 'app.bsky.feed.getTimeline' => { actor => $bsky->did } ), hash {
        field cursor => D();
        field feed   => D();    # Feed items are subject to change
        end;
    }, 'getTimeline( )';
};
subtest 'pull author feed' => sub {
    $login || skip_all "$login";
    is my $feed
        = $bsky->get(
        'app.bsky.feed.getAuthorFeed' => { actor => 'did:plc:z72i7hdynmk6r22z27h6tvur', filter => 'posts_and_author_threads', limit => 30 } ),
        hash {
        field cursor => D();
        field feed   => D();    # Feed items are subject to change
        end;
        }, 'getAuthorFeed( ... )';
};
subtest 'pull post thread' => sub {
    $login || skip_all "$login";
    is my $thread
        = $bsky->get( 'app.bsky.feed.getPostThread' => { uri => 'at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l2s5xxv2ze2c' } ),
        hash {
        field threadgate => E();
        field thread     => meta {    # Feed items are subject to change
            prop reftype => 'HASH';
        };
        end;
        }, 'getPostThread( ... )';
};
subtest 'pull post' => sub {
    $login || skip_all "$login";
    is my $post
        = $bsky->get( 'app.bsky.feed.getPosts' => { uris => ['at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l2s5xxv2ze2c'] } ), hash {
        field posts => array {



( run in 0.296 second using v1.01-cache-2.11-cpan-ec4f86ec37b )