com.suibari.nagi.putPreferences
同期対象の本人設定を書き込む。既読位置は単調マージ、配列・言語・コンテンツ表示設定・最後のブックマークフォルダは updatedAt による後勝ち。各項目は省略でき、送った分だけを更新する。
Details · procedure
| Kind | procedure |
|---|---|
| Authority | nagi.suibari.com |
| Indexed |
Checks
Valid Lint pass{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "同期対象の本人設定を書き込む。既読位置は単調マージ、配列・言語・コンテンツ表示設定・最後のブックマークフォルダは updatedAt による後勝ち。各項目は省略でき、送った分だけを更新する。",
"errors": [
{
"name": "AuthRequired"
},
{
"name": "InvalidRequest"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"chronicleReadYears": {
"description": "年ごとの既読ハッシュ。過去の版は蓄積せず、現在の年表内容と一致する版だけを保存する。",
"items": {
"ref": "com.suibari.nagi.getChronicle#readYear",
"type": "ref"
},
"maxLength": 100,
"type": "array"
},
"detectedTimezone": {
"description": "Nagi を開いたときにブラウザが検出したタイムゾーン(IANA 名)。手動で選んでいる間は送らない。UTC や Etc/* は受け取っても使わない。",
"maxLength": 64,
"type": "string"
},
"diaryDay": {
"description": "日記の1日の区切り。送った項目だけを変える。",
"properties": {
"startHour": {
"description": "区切りの時刻(18〜23, 0〜6)。",
"maximum": 23,
"minimum": 0,
"type": "integer"
},
"timezone": {
"description": "手動のタイムゾーン。null を送ると自動検出に戻す。",
"maxLength": 64,
"type": "string"
}
},
"type": "object"
},
"emojiFavorites": {
"items": {
"type": "unknown"
},
"maxLength": 32,
"type": "array"
},
"emojiFavoritesUpdatedAt": {
"description": "emojiFavorites を送るときは必須。保存済みより古ければ書き込まない。",
"format": "datetime",
"type": "string"
},
"feedTabs": {
"items": {
"ref": "com.suibari.nagi.getPreferences#feedTab",
"type": "ref"
},
"maxLength": 16,
"type": "array"
},
"feedTabsUpdatedAt": {
"description": "feedTabs を送るときは必須。保存済みより古ければ書き込まない。",
"format": "datetime",
"type": "string"
},
"languagePreferences": {
"ref": "com.suibari.nagi.getPreferences#languagePreferences",
"type": "ref"
},
"languagePreferencesUpdatedAt": {
"format": "datetime",
"type": "string"
},
"lastBookmarkFolderId": {
"maxLength": 64,
"nullable": true,
"type": "string"
},
"lastBookmarkFolderUpdatedAt": {
"format": "datetime",
"type": "string"
},
"moderationPreferences": {
"ref": "com.suibari.nagi.getPreferences#moderationPreferences",
"type": "ref"
},
"moderationPreferencesUpdatedAt": {
"format": "datetime",
"type": "string"
},
"preferredName": {
"description": "botたんに呼んでほしい名前。空文字を送ると登録を解除し、表示名に戻す。送らなければ変更しない。",
"maxGraphemes": 40,
"maxLength": 120,
"type": "string"
},
"readPositions": {
"items": {
"ref": "com.suibari.nagi.getPreferences#readPosition",
"type": "ref"
},
"maxLength": 16,
"type": "array"
},
"replyFreq": {
"description": "botたんからの返信確率(0〜100%)。送らなければ変更しない。",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"chronicleReadYears": {
"description": "年ごとの既読ハッシュ。過去の版は蓄積せず、現在の年表内容と一致する版だけを保存する。",
"items": {
"ref": "com.suibari.nagi.getChronicle#readYear",
"type": "ref"
},
"type": "array"
},
"emojiFavorites": {
"items": {
"type": "unknown"
},
"maxLength": 32,
"type": "array"
},
"emojiFavoritesUpdatedAt": {
"format": "datetime",
"type": "string"
},
"feedTabs": {
"items": {
"ref": "com.suibari.nagi.getPreferences#feedTab",
"type": "ref"
},
"maxLength": 16,
"type": "array"
},
"feedTabsUpdatedAt": {
"format": "datetime",
"type": "string"
},
"languagePreferences": {
"ref": "com.suibari.nagi.getPreferences#languagePreferences",
"type": "ref"
},
"languagePreferencesUpdatedAt": {
"format": "datetime",
"type": "string"
},
"lastBookmarkFolderId": {
"maxLength": 64,
"type": "string"
},
"lastBookmarkFolderUpdatedAt": {
"format": "datetime",
"type": "string"
},
"moderationPreferences": {
"ref": "com.suibari.nagi.getPreferences#moderationPreferences",
"type": "ref"
},
"moderationPreferencesUpdatedAt": {
"format": "datetime",
"type": "string"
},
"preferredName": {
"description": "botたんに呼んでほしい名前。省略時は未設定=表示名で呼ばれる。",
"maxGraphemes": 40,
"maxLength": 120,
"type": "string"
},
"readPositions": {
"description": "マージ後の確定値。送った位置が負けた場合は保存済みの方が返る。",
"items": {
"ref": "com.suibari.nagi.getPreferences#readPosition",
"type": "ref"
},
"type": "array"
},
"replyFreq": {
"description": "botたんからの返信確率(0〜100%)。",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"readPositions",
"emojiFavorites"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "com.suibari.nagi.putPreferences",
"lexicon": 1
}