view release on metacpan or search on metacpan
share/lexicons/app/bsky/actor/defs.json view on Meta::CPAN
162163164165166167168169170171172173174175176177178179180181182
"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
290291292293294295296297298299300301302303304305306307308309310311312313314315
"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
262728293031323334353637383940414243444546474849505152535455
"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
8687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
"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
191192193194195196197198199200201202203204205206207208209210211
"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
171819202122232425262728293031323334353637
"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
1234567891011121314151617{
"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
27282930313233343536373839404142434445464748495051525354555657
"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
123456789101112131415161718{
"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
1234567891011121314151617{
"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
1234567891011121314151617{
"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
8687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
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 {