com.suibari.nagi.getPreferences
Schema Diff
+43 -1
Compatibility Analysis
Breaking Changes Detected
3 breaking changes, 9 non-breaking changes.
Breaking Changes (3)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences", src: "com.suibari.nagi.getPreferences#moderationPreferences", tgt: "com.suibari.nagi.getPreferences#moderationPreferences.automatic", kind: "prop", name: Some("automatic") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences", src: "com.suibari.nagi.getPreferences#moderationPreferences", tgt: "com.suibari.nagi.getPreferences#moderationPreferences.selfNsfw", kind: "prop", name: Some("selfNsfw") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences", src: "com.suibari.nagi.getPreferences#moderationPreferences", tgt: "com.suibari.nagi.getPreferences#moderationPreferences.selfAi", kind: "prop", name: Some("selfAi") }
Non-Breaking Changes (9)
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences.automatic" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences.selfAi" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences.selfNsfw" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getPreferences:output.moderationPreferences" }
- AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.getPreferences:output.moderationPreferencesUpdatedAt" }
- AddedEdge AddedEdge { src: "com.suibari.nagi.getPreferences:output", tgt: "com.suibari.nagi.getPreferences:output.moderationPreferences", kind: "prop", name: Some("moderationPreferences") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.getPreferences:output", tgt: "com.suibari.nagi.getPreferences:output.moderationPreferencesUpdatedAt", kind: "prop", name: Some("moderationPreferencesUpdatedAt") }
- AddedEdge AddedEdge { src: "com.suibari.nagi.getPreferences:output.moderationPreferences", tgt: "com.suibari.nagi.getPreferences#moderationPreferences", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences" }AddedVertex { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences.automatic" }AddedVertex { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences.selfAi" }AddedVertex { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences.selfNsfw" }AddedVertex { vertex_id: "com.suibari.nagi.getPreferences:output.moderationPreferences" }AddedVertex { vertex_id: "com.suibari.nagi.getPreferences:output.moderationPreferencesUpdatedAt" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences", src: "com.suibari.nagi.getPreferences#moderationPreferences", tgt: "com.suibari.nagi.getPreferences#moderationPreferences.automatic", kind: "prop", name: Some("automatic") }
- Breaking: RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences", src: "com.suibari.nagi.getPreferences#moderationPreferences", tgt: "com.suibari.nagi.getPreferences#moderationPreferences.selfNsfw", kind: "prop", name: Some("selfNsfw") }
- Breaking: RequiredEdgeAdded { vertex_id: "com.suibari.nagi.getPreferences#moderationPreferences", src: "com.suibari.nagi.getPreferences#moderationPreferences", tgt: "com.suibari.nagi.getPreferences#moderationPreferences.selfAi", kind: "prop", name: Some("selfAi") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.getPreferences:output", tgt: "com.suibari.nagi.getPreferences:output.moderationPreferences", kind: "prop", name: Some("moderationPreferences") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.getPreferences:output", tgt: "com.suibari.nagi.getPreferences:output.moderationPreferencesUpdatedAt", kind: "prop", name: Some("moderationPreferencesUpdatedAt") }
- Non-breaking: AddedEdge { src: "com.suibari.nagi.getPreferences:output.moderationPreferences", tgt: "com.suibari.nagi.getPreferences#moderationPreferences", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"customFavorite": {
5
5
"description": "Bluemoji のスナップショット。url などは表示のたびに再解決されるので、権威は uri のみ。",
6
6
"properties": {
7
7
"emoji": {
8
8
"type": "unknown"
9
9
},
10
10
"kind": {
11
11
"const": "custom",
12
12
"type": "string"
13
13
}
14
14
},
15
15
"required": [
16
16
"kind",
17
17
"emoji"
18
18
],
19
19
"type": "object"
20
20
},
21
21
"feedTab": {
22
22
"description": "フィードのタブ1枚。必要なフィールドは kind ごとに異なる(list / custom は source、channel は uri、search は query)。",
23
23
"properties": {
24
24
"id": {
25
25
"maxLength": 64,
26
26
"type": "string"
27
27
},
28
28
"kind": {
29
29
"knownValues": [
30
30
"list",
31
31
"global",
32
32
"custom",
33
33
"channel",
34
34
"search"
35
35
],
36
36
"maxLength": 32,
37
37
"type": "string"
38
38
},
39
39
"label": {
40
40
"description": "表示名のスナップショット。権威は uri / query 側。",
41
41
"maxLength": 64,
42
42
"type": "string"
43
43
},
44
44
"query": {
45
45
"description": "kind が search のときの保存クエリ。",
46
46
"maxLength": 128,
47
47
"type": "string"
48
48
},
49
49
"queryKind": {
50
50
"knownValues": [
51
51
"keyword",
52
52
"tag"
53
53
],
54
54
"maxLength": 32,
55
55
"type": "string"
56
56
},
57
57
"source": {
58
58
"description": "kind が list / custom のときの参照先(list=home, custom=affirmation)。将来のユーザー定義フィードは uri で指す。",
59
59
"knownValues": [
60
60
"home",
61
61
"affirmation"
62
62
],
63
63
"maxLength": 32,
64
64
"type": "string"
65
65
},
66
66
"uri": {
67
67
"description": "kind が channel のときのチャンネル。",
68
68
"format": "at-uri",
69
69
"maxLength": 2048,
70
70
"type": "string"
71
71
}
72
72
},
73
73
"required": [
74
74
"id",
75
75
"kind"
76
76
],
77
77
"type": "object"
78
78
},
79
79
"languagePreferences": {
80
80
"properties": {
81
81
"autoTranslate": {
82
82
"type": "boolean"
83
83
},
84
84
"post": {
85
85
"maxLength": 16,
86
86
"type": "string"
87
87
},
88
88
"provider": {
89
89
"knownValues": [
90
90
"kagi",
91
91
"deepl",
92
92
"google"
93
93
],
94
94
"type": "string"
95
95
},
96
96
"translation": {
97
97
"maxLength": 16,
98
98
"type": "string"
99
99
}
100
100
},
101
101
"required": [
102
102
"post",
103
103
"translation",
104
104
"provider",
105
105
"autoTranslate"
106
106
],
107
107
"type": "object"
108
108
},
109
109
"main": {
110
-
"description": "端末をまたいで同期する本人の設定(既読位置、お気に入り絵文字、フィードタブ、投稿・翻訳言語、最後のブックマークフォルダ)を返す。他ユーザーからは参照できない。",
110
+
"description": "端末をまたいで同期する本人の設定(既読位置、お気に入り絵文字、フィードタブ、投稿・翻訳言語、コンテンツ表示、最後のブックマークフォルダ)を返す。他ユーザーからは参照できない。",
111
111
"errors": [
112
112
{
113
113
"name": "AuthRequired"
114
114
}
115
115
],
116
116
"output": {
117
117
"encoding": "application/json",
118
118
"schema": {
119
119
"properties": {
120
120
"emojiFavorites": {
121
121
"description": "お気に入り絵文字パレット。表示順そのまま。要素は #unicodeFavorite または #customFavorite。",
122
122
"items": {
123
123
"type": "unknown"
124
124
},
125
125
"maxLength": 32,
126
126
"type": "array"
127
127
},
128
128
"emojiFavoritesUpdatedAt": {
129
129
"description": "省略時は、この利用者のお気に入りがまだ一度も同期されていないことを表す。",
130
130
"format": "datetime",
131
131
"type": "string"
132
132
},
133
133
"feedTabs": {
134
134
"description": "フィードのタブ。表示順そのまま。",
135
135
"items": {
136
136
"ref": "#feedTab",
137
137
"type": "ref"
138
138
},
139
139
"maxLength": 16,
140
140
"type": "array"
141
141
},
142
142
"feedTabsUpdatedAt": {
143
143
"description": "省略時は、この利用者がまだ一度もタブをカスタムしていないことを表す(クライアントは既定タブを使う)。",
144
144
"format": "datetime",
145
145
"type": "string"
146
146
},
147
147
"languagePreferences": {
148
148
"ref": "#languagePreferences",
149
149
"type": "ref"
150
150
},
151
151
"languagePreferencesUpdatedAt": {
152
152
"format": "datetime",
153
153
"type": "string"
154
154
},
155
155
"lastBookmarkFolderId": {
156
156
"maxLength": 64,
157
157
"type": "string"
158
158
},
159
159
"lastBookmarkFolderUpdatedAt": {
160
160
"format": "datetime",
161
161
"type": "string"
162
162
},
163
+
"moderationPreferences": {
164
+
"ref": "#moderationPreferences",
165
+
"type": "ref"
166
+
},
167
+
"moderationPreferencesUpdatedAt": {
168
+
"format": "datetime",
169
+
"type": "string"
170
+
},
163
171
"preferredName": {
164
172
"description": "botたんに呼んでほしい名前。省略時は未設定=表示名で呼ばれる。",
165
173
"maxGraphemes": 40,
166
174
"maxLength": 120,
167
175
"type": "string"
168
176
},
169
177
"readPositions": {
170
178
"items": {
171
179
"ref": "#readPosition",
172
180
"type": "ref"
173
181
},
174
182
"type": "array"
175
183
},
176
184
"replyFreq": {
177
185
"description": "botたんからの返信確率(0〜100%)。Bluesky側のfreq設定と共用。",
178
186
"maximum": 100,
179
187
"minimum": 0,
180
188
"type": "integer"
181
189
}
182
190
},
183
191
"required": [
184
192
"readPositions",
185
193
"emojiFavorites"
186
194
],
187
195
"type": "object"
188
196
}
189
197
},
190
198
"type": "query"
191
199
},
200
+
"moderationPreferences": {
201
+
"properties": {
202
+
"automatic": {
203
+
"knownValues": [
204
+
"warn",
205
+
"hide",
206
+
"ignore"
207
+
],
208
+
"type": "string"
209
+
},
210
+
"selfAi": {
211
+
"knownValues": [
212
+
"warn",
213
+
"hide",
214
+
"ignore"
215
+
],
216
+
"type": "string"
217
+
},
218
+
"selfNsfw": {
219
+
"knownValues": [
220
+
"warn",
221
+
"hide",
222
+
"ignore"
223
+
],
224
+
"type": "string"
225
+
}
226
+
},
227
+
"required": [
228
+
"automatic",
229
+
"selfAi",
230
+
"selfNsfw"
231
+
],
232
+
"type": "object"
233
+
},
192
234
"readPosition": {
193
235
"description": "「ここまで読んだ」位置。新旧の比較は (indexedAt, uri) の辞書順で行う。",
194
236
"properties": {
195
237
"indexedAt": {
196
238
"format": "datetime",
197
239
"type": "string"
198
240
},
199
241
"section": {
200
242
"knownValues": [
201
243
"bot",
202
244
"community",
203
245
"list",
204
246
"channels",
205
247
"news"
206
248
],
207
249
"maxLength": 32,
208
250
"type": "string"
209
251
},
210
252
"uri": {
211
253
"format": "at-uri",
212
254
"maxLength": 2048,
213
255
"type": "string"
214
256
}
215
257
},
216
258
"required": [
217
259
"section",
218
260
"indexedAt",
219
261
"uri"
220
262
],
221
263
"type": "object"
222
264
},
223
265
"unicodeFavorite": {
224
266
"properties": {
225
267
"emoji": {
226
268
"maxLength": 64,
227
269
"type": "string"
228
270
},
229
271
"kind": {
230
272
"const": "unicode",
231
273
"type": "string"
232
274
}
233
275
},
234
276
"required": [
235
277
"kind",
236
278
"emoji"
237
279
],
238
280
"type": "object"
239
281
}
240
282
},
241
283
"id": "com.suibari.nagi.getPreferences",
242
284
"lexicon": 1
243
285
}