social.colibri.beta.emoji.upload
Adds a custom emoji to a community. The bytes are uploaded to the community's own repo and the AppView writes the provider's record there with the community's credentials.
Details · procedure
| Kind | procedure |
|---|---|
| Authority | emoji.beta.colibri.social |
| Indexed |
Checks
Validunlimited-stringdefs.main.parameters.properties.providerNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Adds a custom emoji to a community. The bytes are uploaded to the community's own repo and the AppView writes the provider's record there with the community's credentials.",
"errors": [
{
"description": "The request is missing, malformed, or unverifiable service auth.",
"name": "AuthRequired"
},
{
"description": "The caller lacks the community.manage permission.",
"name": "Forbidden"
},
{
"description": "No community exists at the given DID.",
"name": "CommunityNotFound"
},
{
"description": "The name is not 2 to 32 characters of lowercase letters, digits and underscores.",
"name": "InvalidName"
},
{
"description": "The community already has an emoji with this name.",
"name": "NameTaken"
},
{
"description": "No pack of this community exists at the given URI.",
"name": "PackNotFound"
},
{
"description": "The emoji provider is unknown, or it does not support the requested operation.",
"name": "UnsupportedProvider"
},
{
"description": "The bytes are not an image type the provider accepts.",
"name": "UnsupportedImage"
},
{
"description": "The image exceeds the provider's size limit.",
"name": "ImageTooLarge"
},
{
"description": "The AppView cannot act as the community because its stored credentials are missing or unusable.",
"name": "CredentialsUnavailable"
},
{
"description": "A PDS call the AppView depends on failed.",
"name": "UpstreamFailure"
}
],
"input": {
"description": "The raw image bytes. The provider sets the size limit and the accepted types, which is 128000 bytes of image/png, image/webp or image/gif for blue.moji. The content type is sniffed rather than trusted.",
"encoding": "image/*"
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"emoji": {
"description": "The emoji as stored.",
"ref": "social.colibri.beta.emoji.defs#emojiView",
"type": "ref"
}
},
"required": [
"emoji"
],
"type": "object"
}
},
"parameters": {
"properties": {
"community": {
"description": "The community that owns the emoji.",
"format": "did",
"type": "string"
},
"name": {
"description": "The emoji's name without colons. Lowercase letters, digits and underscores.",
"maxLength": 32,
"minLength": 2,
"type": "string"
},
"pack": {
"description": "A pack of the community to add the emoji to.",
"format": "at-uri",
"type": "string"
},
"provider": {
"description": "The emoji provider that writes the records. Defaults to the AppView's default provider.",
"knownValues": [
"blue.moji"
],
"type": "string"
}
},
"required": [
"community",
"name"
],
"type": "params"
},
"type": "procedure"
}
},
"id": "social.colibri.beta.emoji.upload",
"lexicon": 1
}