geocaches for the atmosphere
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

lexicon renames, profiles, and visits

+184 -1
+45
lexicon/world.geocache.cache.get.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "world.geocache.cache.get", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "description": "Gets hydrated data for a geocache.", 8 + "parameters": { 9 + "type": "params", 10 + "required": ["did", "rkey"], 11 + "properties": { 12 + "did": { 13 + "type": "string", 14 + "format": "at-identifier", 15 + "description": "The DID of the cache maintainer." 16 + }, 17 + "rkey": { 18 + "type": "string", 19 + "description": "The record key." 20 + } 21 + } 22 + }, 23 + "output": { 24 + "encoding": "application/json", 25 + "schema": { 26 + "type": "object", 27 + "required": ["cache"], 28 + "properties": { 29 + /* the geocache lexicon is a bit complex -- it points to at least one extra other record, 30 + potentially many. it would be simpler for the client if we provided a "hydrated" cache, 31 + with all the data belonging to the geocache record being displayed in a "flat" manner. 32 + 33 + this would also allow visits for a cache to be given with the cache, though we may need 34 + in the future a cursor type system for very long running geocaches... 35 + */ 36 + "cache": { 37 + "type": "ref", 38 + "refs": "world.geocache.hydratedCache" 39 + }, 40 + } 41 + } 42 + } 43 + } 44 + } 45 + }
+68
lexicon/world.geocache.cache.visit.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "world.geocache.visit", 4 + "defs": { 5 + "main": { 6 + "type": "record", 7 + "description": "A record of visiting a geocache", 8 + "record": { 9 + "type": "object", 10 + "required": ["createdAt", "visitedCache"], 11 + "properties": { 12 + "createdAt": { 13 + "type": "string", 14 + "description": "The timestamp of visitation.", 15 + "format": "datetime" 16 + }, 17 + "image": { 18 + "type": "ref", 19 + "ref": "#image" 20 + }, 21 + "visitedCache": { 22 + "type": "ref", 23 + "description": "The geocache this visit is in reference to.", 24 + "ref": "com.atproto.repo.strongRef" 25 + }, 26 + "publicComment": { 27 + "type": "string", 28 + "description": "A comment describing the visit, to be displayed on the geocache's page." 29 + "maxGraphemes": 1000, 30 + "maxLength": 10000, 31 + }, 32 + "signature": { 33 + "type": "ref", 34 + "description": "The cryptographic signature for verifying the user actually visited the cache.", 35 + "ref": "world.geocache.visit.signature" 36 + } 37 + } 38 + } 39 + }, 40 + "image": { 41 + "type": "object", 42 + "required": ["blob", "imageLink"], 43 + "properties": { 44 + "blob": { 45 + "type": "blob", 46 + "accept": ["image/png","image/jpeg","image/jxl","image/heif","image/webp"], 47 + "maxSize": 1048576, 48 + "description": "The actual atproto image blob." 49 + }, 50 + "imageLink": { 51 + "type": "ref", 52 + "ref": "#imageLink" 53 + } 54 + } 55 + }, 56 + "imageLink": { 57 + "type": "object", 58 + "description": "A link to the image, it can be either directly to the PDS or to a CDN.", 59 + "required": [], 60 + "properties": { 61 + "alt": { 62 + "type": "string", 63 + "description": "Alt text description of the image, for accessibility." 64 + } 65 + } 66 + } 67 + } 68 + }
+1 -1
lexicon/world.geocache.experimental.geocache.json lexicon/world.geocache.cache.json
··· 1 1 { 2 2 "lexicon": 1, 3 - "id": "world.geocache.experimental.geocache", 3 + "id": "world.geocache.cache", 4 4 "defs": { 5 5 "main": { 6 6 "type": "record",
+44
lexicon/world.geocache.user.profile.get.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "world.geocache.user.profile.get", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "description": "Gets profile for a geocacher.", 8 + "parameters": { 9 + "type": "params", 10 + "required": ["did"], 11 + "properties": { 12 + "did": { 13 + "type": "string", 14 + "format": "at-identifier", 15 + "description": "The DID of the cache maintainer." 16 + }, 17 + }, 18 + "output": { 19 + "encoding": "application/json", 20 + "schema": { 21 + "type": "object", 22 + "required": ["profile","caches"], 23 + "properties": { 24 + "profile": { 25 + "type": "ref", 26 + "ref": "com.atproto.repo.strongRef", 27 + }, 28 + "caches": { 29 + "type": "array", 30 + "items": { 31 + /* it would not be ideal to force the profile view to always show every detail about every cache 32 + so instead we can provide a minified view, with just essential details like the name, status, image, 33 + and the aturi for the cache 34 + */ 35 + "type": "ref", 36 + "ref": "world.geocache.cache.miniView" 37 + } 38 + } 39 + } 40 + } 41 + } 42 + } 43 + } 44 + }
+26
lexicon/world.geocache.user.profile.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "world.geocache.user.profile", 4 + "defs": { 5 + "main": { 6 + "type": "record", 7 + "description": "A profile of a Geocache World user.", 8 + "record": { 9 + "type": "object", 10 + "properties": { 11 + "avatar": { 12 + "type": "ref", 13 + "description": "The avatar for the user", 14 + "ref": "com.atproto.repo.strongRef" 15 + }, 16 + "bio": { 17 + "type": "string", 18 + "description": "The bio of the user.", 19 + "maxGraphemes": 240, 20 + "maxLength": 2400 21 + }, 22 + } 23 + } 24 + }, 25 + } 26 + }