view release on metacpan or search on metacpan
share/lexicons/app/bsky/actor/defs.json view on Meta::CPAN
"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
"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
"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
"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
"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
"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
{
"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
"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
{
"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
{
"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
{
"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
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 {