Compare commits
10 commits
3e06b0844a
...
0c7e67126c
| Author | SHA1 | Date | |
|---|---|---|---|
| 0c7e67126c | |||
| ebb6fdce39 | |||
| d7b4ede16e | |||
| 0beee2c8d0 | |||
| 60262fed0c | |||
| 360a3b3fde | |||
| f22b060c97 | |||
| d2779156f6 | |||
| 83b070619c | |||
| 26f8b34251 |
5 changed files with 171 additions and 5 deletions
42
lexicons/my/spoor/content/external.json
Normal file
42
lexicons/my/spoor/content/external.json
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "my.spoor.content.external",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "record",
|
||||||
|
"key": "nsid",
|
||||||
|
"record": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [ "source", "queryable" ],
|
||||||
|
"properties": {
|
||||||
|
"titles": {
|
||||||
|
"type": "array",
|
||||||
|
"minLength": 1,
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "my.spoor.content.title"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "An nsid for a specific data source. The domain authority governs how to process the queryable",
|
||||||
|
"format": "nsid",
|
||||||
|
"knownValues": [
|
||||||
|
"my.spoor.content.external#tvdb"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"queryable": {
|
||||||
|
"type": "union",
|
||||||
|
"description": "All the data needed to query the content from the source",
|
||||||
|
"refs": []
|
||||||
|
},
|
||||||
|
"overrides": {
|
||||||
|
"type": "union",
|
||||||
|
"description": "User defined overrides for the returned content",
|
||||||
|
"refs": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
53
lexicons/my/spoor/content/media.json
Normal file
53
lexicons/my/spoor/content/media.json
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "my.spoor.content.media",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "record",
|
||||||
|
"key": "nsid",
|
||||||
|
"record": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [ "titles", "lastUpdated" ],
|
||||||
|
"properties": {
|
||||||
|
"titles": {
|
||||||
|
"type": "array",
|
||||||
|
"minLength": 1,
|
||||||
|
"items": {
|
||||||
|
"type": "ref",
|
||||||
|
"ref": "my.spoor.content.title"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"durationData": {
|
||||||
|
"type": "union",
|
||||||
|
"refs": [
|
||||||
|
"my.spoor.content.media#television",
|
||||||
|
"my.spoor.content.media#book"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"posterImage": {
|
||||||
|
"type": "blob",
|
||||||
|
"accept": ["image/png", "image/jpeg"],
|
||||||
|
"maxSize": 1000000
|
||||||
|
},
|
||||||
|
"lastUpdated": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "datetime",
|
||||||
|
"description": "Client-declared timestamp for when this activity was last updated"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"television": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"episodes": { "type": "integer", "minimum": 0}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"book": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"chapters": { "type": "integer", "minimum": 0}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
29
lexicons/my/spoor/content/title.json
Normal file
29
lexicons/my/spoor/content/title.json
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "my.spoor.content.title",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"translationType": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "nsid",
|
||||||
|
"knownValues": [
|
||||||
|
"#titleHomophonic", "#titleNative", "#titleTranslation"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"lang": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "language"
|
||||||
|
},
|
||||||
|
"value": { "type": "string", "minLength": 1 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"titleHomophonic": { "type": "token",
|
||||||
|
"description": "A phonetic transcription of the native title such that when read it will sound like the native title." },
|
||||||
|
"titleNative": { "type": "token",
|
||||||
|
"description": "The title in its native script" },
|
||||||
|
"titleTranslation": { "type": "token",
|
||||||
|
"description": "A translation of the title" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
"lexicon": 1,
|
"lexicon": 1,
|
||||||
"id": "me.woach.feed.activity",
|
"id": "my.spoor.log.activity",
|
||||||
"defs": {
|
"defs": {
|
||||||
"main": {
|
"main": {
|
||||||
"type": "record",
|
"type": "record",
|
||||||
"description": "A single activity log for a specific show",
|
"description": "A single activity (spoor) for a specific session",
|
||||||
"key": "tid",
|
"key": "tid",
|
||||||
"record": {
|
"record": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
|
@ -13,13 +13,15 @@
|
||||||
"properties": {
|
"properties": {
|
||||||
"session": { "type": "ref", "ref": "com.atproto.repo.strongRef" },
|
"session": { "type": "ref", "ref": "com.atproto.repo.strongRef" },
|
||||||
"progress": {
|
"progress": {
|
||||||
"type": "integer",
|
"type": "union",
|
||||||
"description": "The episode/chapter number for the content consumed."
|
"refs": [
|
||||||
|
"#progressIndex"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"performedAt": {
|
"performedAt": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"format": "datetime",
|
"format": "datetime",
|
||||||
"description": "User-declared timestamp for when they performed the activity."
|
"description": "User-declared timestamp for when they performed the activity. Null implies unknown time."
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
|
|
@ -28,6 +30,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"progressIndex": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "The index of the content consumed. Content must be indexable",
|
||||||
|
"required": [ "index" ],
|
||||||
|
"properties": {
|
||||||
|
"index": { "type": "integer" }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
32
lexicons/my/spoor/log/session.json
Normal file
32
lexicons/my/spoor/log/session.json
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
"lexicon": 1,
|
||||||
|
"id": "my.spoor.log.session",
|
||||||
|
"defs": {
|
||||||
|
"main": {
|
||||||
|
"type": "record",
|
||||||
|
"description": "A session of consuming some content",
|
||||||
|
"key": "tid",
|
||||||
|
"record": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["content", "createdAt"],
|
||||||
|
"properties": {
|
||||||
|
"content": { "type": "ref", "ref": "com.atproto.repo.strongRef" },
|
||||||
|
"label": {
|
||||||
|
"type": "string",
|
||||||
|
"maxGraphemes": 64,
|
||||||
|
"maxLength": 640
|
||||||
|
},
|
||||||
|
"otherParticipants": {
|
||||||
|
"type": "array",
|
||||||
|
"items": { "type": "string", "format": "did" }
|
||||||
|
},
|
||||||
|
"createdAt": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "datetime",
|
||||||
|
"description": "Client-declared timestamp for when this activity was created"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue