app.zeens.getSubjectCovers
Cover thumbnails for a batch of zeen / collection URIs. Deliberately narrow -- URIs in, cover refs out -- so a notifications list can draw a preview per row without a round trip each. getCollection takes one uri and returns the whole record plus an item count; a zeen had no AppView read at all and getZeen goes to the author's PDS for every page's full text to find one cid.
Details · query
| Kind | query |
|---|---|
| Authority | zeens.app |
| Indexed |
Checks
Validunlimited-stringdefs.cover.properties.collectionNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.cover.properties.titleNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.parameters.properties.urisNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"cover": {
"description": "One subject. Returned even when it has no cover image, so a caller can tell a subject with no picture from a URI it could not resolve.",
"properties": {
"cid": {
"description": "The cover blob. Absent when the subject has no cover image, or when a private collection's cover is withheld.",
"format": "cid",
"type": "string"
},
"collection": {
"description": "The subject's NSID: app.zeens.zeen or app.zeens.collection. The caller draws a zeen at its 1:1.414 page ratio and a collection square.",
"type": "string"
},
"did": {
"description": "The repo the blob lives on, which is NOT always the subject's author -- a zeen page can hold another user's photo, and the CDN needs the owning repo.",
"format": "did",
"type": "string"
},
"title": {
"description": "The zeen's title or the collection's name, for a subject with no cover to fall back on.",
"type": "string"
},
"uri": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"uri",
"collection"
],
"type": "object"
},
"main": {
"description": "Cover thumbnails for a batch of zeen / collection URIs. Deliberately narrow -- URIs in, cover refs out -- so a notifications list can draw a preview per row without a round trip each. getCollection takes one uri and returns the whole record plus an item count; a zeen had no AppView read at all and getZeen goes to the author's PDS for every page's full text to find one cid.",
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"covers": {
"items": {
"ref": "#cover",
"type": "ref"
},
"type": "array"
}
},
"required": [
"covers"
],
"type": "object"
}
},
"parameters": {
"properties": {
"uris": {
"description": "Comma-separated AT-URIs, up to 50 (the notifications page size). Values beyond that are ignored. Mixed lexicons are expected: a notifications page holds zeen likes and collection likes together.",
"type": "string"
}
},
"required": [
"uris"
],
"type": "params"
},
"type": "query"
}
},
"id": "app.zeens.getSubjectCovers",
"lexicon": 1
}