atproto blogging
1{
2 "lexicon": 1,
3 "id": "sh.weaver.notebook.getSuggestedNotebooks",
4 "defs": {
5 "main": {
6 "type": "query",
7 "description": "Get notebook recommendations for the authenticated user based on reading history, likes, and follows.",
8 "parameters": {
9 "type": "params",
10 "properties": {
11 "limit": {
12 "type": "integer",
13 "default": 20,
14 "minimum": 1,
15 "maximum": 50
16 }
17 }
18 },
19 "output": {
20 "encoding": "application/json",
21 "schema": {
22 "type": "object",
23 "required": [
24 "notebooks"
25 ],
26 "properties": {
27 "notebooks": {
28 "type": "array",
29 "items": {
30 "type": "ref",
31 "ref": "#suggestedNotebook"
32 }
33 }
34 }
35 }
36 }
37 },
38 "suggestedNotebook": {
39 "type": "object",
40 "required": [
41 "notebook",
42 "reason"
43 ],
44 "properties": {
45 "notebook": {
46 "type": "ref",
47 "ref": "sh.weaver.notebook.defs#notebookView"
48 },
49 "reason": {
50 "type": "ref",
51 "ref": "#suggestionReason"
52 },
53 "score": {
54 "type": "integer",
55 "description": "Appview-computed relevance score."
56 }
57 }
58 },
59 "suggestionReason": {
60 "type": "object",
61 "description": "Why this notebook was suggested.",
62 "required": [
63 "type"
64 ],
65 "properties": {
66 "relatedAuthor": {
67 "type": "ref",
68 "description": "If followed-author, the author.",
69 "ref": "sh.weaver.actor.defs#profileViewBasic"
70 },
71 "relatedList": {
72 "type": "ref",
73 "description": "If from-list, the list it's from.",
74 "ref": "sh.weaver.graph.defs#listView"
75 },
76 "relatedNotebook": {
77 "type": "ref",
78 "description": "If similar-to-X, the notebook it's similar to.",
79 "ref": "sh.weaver.notebook.defs#notebookView"
80 },
81 "relatedTags": {
82 "type": "array",
83 "description": "Tags that matched.",
84 "items": {
85 "type": "string"
86 }
87 },
88 "type": {
89 "type": "string",
90 "knownValues": [
91 "similar-tags",
92 "similar-to-liked",
93 "similar-to-read",
94 "followed-author",
95 "popular-in-tag",
96 "trending",
97 "from-list"
98 ]
99 }
100 }
101 }
102 }
103}