From 83631251089c580eae4d3a80cdf24c99711e1bb3 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Thu, 1 May 2025 15:48:13 -0700 Subject: [PATCH] Lexicons, woach to spoor, anilist to external THESE LEXICONS ARE NOT FINAL, she screamed into the wind. converts all references to woach.me to spoor.my to reflect the official domain name. Rename "feed" 3ld to "log" since the content here is separate from what an activity feed would look like. Log has more in common with records. I maintained the name activity over "spoor" here, because I want the items to be easily digested by other services. I think "spoor" is actually a more apt term than "activity" since "activity" is more generic, than the specific mediaspoor it is, but it will do. Changes the "anilist" entry to a more generic "external" entry, which will be able to handle tvdb, or similar. --- lexicons/me/woach/content/anilist.json | 14 --------- lexicons/my/spoor/content/external.json | 30 +++++++++++++++++++ .../{me/woach => my/spoor}/content/media.json | 8 ++--- .../{me/woach => my/spoor}/content/title.json | 9 +++--- .../woach/feed => my/spoor/log}/activity.json | 16 ++++++---- .../woach/feed => my/spoor/log}/session.json | 6 ++-- 6 files changed, 53 insertions(+), 30 deletions(-) delete mode 100644 lexicons/me/woach/content/anilist.json create mode 100644 lexicons/my/spoor/content/external.json rename lexicons/{me/woach => my/spoor}/content/media.json (85%) rename lexicons/{me/woach => my/spoor}/content/title.json (72%) rename lexicons/{me/woach/feed => my/spoor/log}/activity.json (64%) rename lexicons/{me/woach/feed => my/spoor/log}/session.json (84%) diff --git a/lexicons/me/woach/content/anilist.json b/lexicons/me/woach/content/anilist.json deleted file mode 100644 index 06b6ab9..0000000 --- a/lexicons/me/woach/content/anilist.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "lexicon": 1, - "id": "me.woach.content.anilist", - "defs": { - "main": { - "type": "object", - "required": ["id"], - "key": "nsid", - "properties": { - "id": { "type": "integer" } - } - } - } -} diff --git a/lexicons/my/spoor/content/external.json b/lexicons/my/spoor/content/external.json new file mode 100644 index 0000000..ae74ab0 --- /dev/null +++ b/lexicons/my/spoor/content/external.json @@ -0,0 +1,30 @@ +{ + "lexicon": 1, + "id": "my.spoor.content.external", + "defs": { + "main": { + "type": "object", + "required": [ "source", "queryable" ], + "key": "nsid", + "properties": { + "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" + }, + "overrides": { + "type": "object", + "description": "User defined overrides for the returned content", + "properties": {} + } + } + } + } +} diff --git a/lexicons/me/woach/content/media.json b/lexicons/my/spoor/content/media.json similarity index 85% rename from lexicons/me/woach/content/media.json rename to lexicons/my/spoor/content/media.json index 0ea082a..3f18ad8 100644 --- a/lexicons/me/woach/content/media.json +++ b/lexicons/my/spoor/content/media.json @@ -1,6 +1,6 @@ { "lexicon": 1, - "id": "me.woach.content.media", + "id": "my.spoor.content.media", "defs": { "main": { "type": "object", @@ -12,14 +12,14 @@ "minLength": 1, "items": { "type": "ref", - "ref": "me.woach.content.title" + "ref": "my.spoor.content.title" } }, "durationData": { "type": "union", "refs": [ - "me.woach.content.media#television", - "me.woach.content.media#book" + "my.spoor.content.media#television", + "my.spoor.content.media#book" ] }, "posterImage": { diff --git a/lexicons/me/woach/content/title.json b/lexicons/my/spoor/content/title.json similarity index 72% rename from lexicons/me/woach/content/title.json rename to lexicons/my/spoor/content/title.json index 0394b9f..48f338d 100644 --- a/lexicons/me/woach/content/title.json +++ b/lexicons/my/spoor/content/title.json @@ -1,16 +1,17 @@ { "lexicon": 1, - "id": "me.woach.content.title", + "id": "my.spoor.content.title", "defs": { "main": { "type": "object", "properties": { "language": { "type": "string", + "format": "nsid", "knownValues": [ - "me.woach.content.title#romanization", - "me.woach.content.title#english", - "me.woach.content.title#native" + "my.spoor.content.title#romanization", + "my.spoor.content.title#english", + "my.spoor.content.title#native" ] }, "value": { "type": "string", "minLength": 1 } diff --git a/lexicons/me/woach/feed/activity.json b/lexicons/my/spoor/log/activity.json similarity index 64% rename from lexicons/me/woach/feed/activity.json rename to lexicons/my/spoor/log/activity.json index 67ab025..f3035fb 100644 --- a/lexicons/me/woach/feed/activity.json +++ b/lexicons/my/spoor/log/activity.json @@ -1,10 +1,10 @@ { "lexicon": 1, - "id": "me.woach.feed.activity", + "id": "my.spoor.log.activity", "defs": { "main": { "type": "record", - "description": "A single activity log for a specific show", + "description": "A single activity (spoor) for a specific session", "key": "tid", "record": { "type": "object", @@ -13,13 +13,15 @@ "properties": { "session": { "type": "ref", "ref": "com.atproto.repo.strongRef" }, "progress": { - "type": "integer", - "description": "The episode/chapter number for the content consumed." + "type": "union", + "refs": [ + "my.spoor.log.activity#indexProgress" + ] }, "performedAt": { "type": "string", "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": { "type": "string", @@ -28,6 +30,10 @@ } } } + }, + "indexProgress": { + "type": "integer", + "description": "The index of the content consumed. Content must be indexable" } } } diff --git a/lexicons/me/woach/feed/session.json b/lexicons/my/spoor/log/session.json similarity index 84% rename from lexicons/me/woach/feed/session.json rename to lexicons/my/spoor/log/session.json index a7979c7..4da7738 100644 --- a/lexicons/me/woach/feed/session.json +++ b/lexicons/my/spoor/log/session.json @@ -1,6 +1,6 @@ { "lexicon": 1, - "id": "me.woach.feed.session", + "id": "my.spoor.log.session", "defs": { "main": { "type": "record", @@ -16,9 +16,9 @@ "maxGraphemes": 64, "maxLength": 640 }, - "participants": { + "otherParticipants": { "type": "array", - "items": { "type": "ref", "ref": "com.atproto.repo.strongRef" } + "items": { "type": "string", "format": "did" } }, "createdAt": { "type": "string",