diff --git a/docs/store.md b/docs/store.md index 3e3a60002..cc7b37680 100644 --- a/docs/store.md +++ b/docs/store.md @@ -14,9 +14,53 @@ If it's not documented, it's because I inherited it from Mastodon and I don't kn - `timelines` -- `meta` - User-specific data that is _not_ a frontend setting (see: `settings`). +- `meta` - User-specific data that is _not_ a frontend setting (see: `settings`). + + Sample: + ``` + meta: { + pleroma: { + unread_conversation_count: 0, + hide_follows: false, + hide_followers_count: false, + background_image: 'https://dev.teci.world/media/74644a40461bb85fa41db02547b656fa382e0e2ada29021059ff2a2956c1bbab.jpg', + confirmation_pending: false, + is_moderator: false, + deactivated: false, + chat_token: 'SFMyNTY.g3QAAAACZAAEZGF0YW0AAAASOXRvMU5QeVM5OEo4Y2RpY1JFZAAGc2lnbmVkbgYAcH3yxnEB.qD9qQzEfRH4sfJQfPCJQKHayVUQ6_1m6t5iqE7jB17Q', + allow_following_move: true, + hide_follows_count: false, + notification_settings: { + followers: true, + follows: true, + non_followers: true, + non_follows: true, + privacy_option: false + }, + hide_followers: false, + relationship: { + showing_reblogs: true, + followed_by: false, + subscribing: false, + blocked_by: false, + requested: false, + domain_blocking: false, + following: false, + endorsed: false, + blocking: false, + muting: false, + id: '9to1NPyS98J8cdicRE', + muting_notifications: false + }, + tags: [], + hide_favorites: true, + is_admin: true, + skip_thread_containment: false + } + }, + ``` - - `pleroma` - Pleroma specific metadata about the user pulled from `/api/v1/accounts/verify_credentials` (excluding the pleroma_settings_store) +- `pleroma` - Pleroma specific metadata about the user pulled from `/api/v1/accounts/verify_credentials` (excluding the pleroma_settings_store) - `alerts` @@ -25,21 +69,292 @@ If it's not documented, it's because I inherited it from Mastodon and I don't kn - `modal` - `user_lists` + + Sample: + ``` + user_lists: { + reblogged_by: {}, + blocks: {}, + groups_removed_accounts: {}, + following: {}, + follow_requests: {}, + groups: {}, + followers: {}, + mutes: {}, + favourited_by: {} + }, + ``` - `domain_lists` - `status_lists` -- `accounts` - Data for all accounts you've viewed since launching the page, so they don't have to be downloaded twice. +- `accounts` - Data for all accounts you've viewed since launching the page, so they don't have to be downloaded twice. + + Sample: + ``` + accounts: { + '9to1NPyS98J8cdicRE': { + header_static: 'https://dev.teci.world/media/27272c6f53a8a535d2c11a98d3b3473833bf80192e82347548b9f1b6dc4027ab.jpg', + display_name_html: 'crockwave', + follow_requests_count: 0, + bot: false, + display_name: 'crockwave', + created_at: '2020-04-07T16:29:04.000Z', + locked: false, + emojis: [], + header: 'https://dev.teci.world/media/27272c6f53a8a535d2c11a98d3b3473833bf80192e82347548b9f1b6dc4027ab.jpg', + url: 'https://dev.teci.world/users/curtis', + note: '', + acct: 'curtis', + avatar_static: 'https://dev.teci.world/media/3e41f0e4e0b7e673959061f90c69a57ff547bd48ccca90df5d46be87a874febd.png', + username: 'curtis', + avatar: 'https://dev.teci.world/media/3e41f0e4e0b7e673959061f90c69a57ff547bd48ccca90df5d46be87a874febd.png', + fields: [], + pleroma: { + unread_conversation_count: 0, + hide_follows: false, + hide_followers_count: false, + background_image: 'https://dev.teci.world/media/74644a40461bb85fa41db02547b656fa382e0e2ada29021059ff2a2956c1bbab.jpg', + confirmation_pending: false, + is_moderator: false, + deactivated: false, + allow_following_move: true, + hide_follows_count: false, + notification_settings: { + followers: true, + follows: true, + non_followers: true, + non_follows: true, + privacy_option: false + }, + hide_followers: false, + relationship: { + showing_reblogs: true, + followed_by: false, + subscribing: false, + blocked_by: false, + requested: false, + domain_blocking: false, + following: false, + endorsed: false, + blocking: false, + muting: false, + id: '9to1NPyS98J8cdicRE', + muting_notifications: false + }, + tags: [], + hide_favorites: true, + is_admin: true, + skip_thread_containment: false + }, + source: { + fields: [], + note: '', + pleroma: { + actor_type: 'Person', + discoverable: false, + no_rich_text: false, + show_role: true + }, + privacy: 'public', + sensitive: false + }, + id: '9to1NPyS98J8cdicRE', + note_emojified: '' + } + }, + ``` - `accounts_counters` - `statuses` - Data for all statuses you've viewed since launching the page, so they don't have to be downloaded twice. - + + Sample: + ``` + statuses: { + '9uVxGSYFo6ooon0ebQ': { + in_reply_to_account_id: null, + contentHtml: '

jpg test @curtis

', + mentions: [ + { + acct: 'curtis', + id: '9to1NPyS98J8cdicRE', + url: 'https://dev.teci.world/users/curtis', + username: 'curtis' + } + ], + created_at: '2020-04-28T21:10:16.000Z', + spoiler_text: '', + hidden: false, + muted: false, + uri: 'https://gleasonator.com/users/crockwave/statuses/104078260079111405', + spoilerHtml: '', + emojis: [], + account: '9toTIlRPKG2j5obki8', + reblogs_count: 0, + url: 'https://gleasonator.com/@crockwave/posts/104078260079111405', + application: { + name: 'Web', + website: null + }, + card: null, + in_reply_to_id: null, + reblogged: false, + visibility: 'public', + bookmarked: false, + reblog: null, + media_attachments: [ + { + description: null, + id: '1375732379', + pleroma: { + mime_type: 'image/jpeg' + }, + preview_url: 'https://media.gleasonator.com/media_attachments/files/000/853/856/original/7035d67937053e1d.jpg', + remote_url: 'https://media.gleasonator.com/media_attachments/files/000/853/856/original/7035d67937053e1d.jpg', + text_url: 'https://media.gleasonator.com/media_attachments/files/000/853/856/original/7035d67937053e1d.jpg', + type: 'image', + url: 'https://media.gleasonator.com/media_attachments/files/000/853/856/original/7035d67937053e1d.jpg' + } + ], + sensitive: false, + replies_count: 0, + language: null, + pinned: false, + tags: [], + content: '

jpg test @curtis

', + favourites_count: 0, + pleroma: { + direct_conversation_id: null, + spoiler_text: { + 'text/plain': '' + }, + local: false, + emoji_reactions: [], + thread_muted: false, + conversation_id: 1951, + content: { + 'text/plain': 'jpg test @curtis' + }, + in_reply_to_account_acct: null, + expires_at: null + }, + favourited: false, + id: '9uVxGSYFo6ooon0ebQ', + search_index: 'jpg test @curtis', + poll: null + } + }, + ``` + - `relationships` - `settings` - Any frontend configuration values that should be persisted to the backend database. This includes user preferences as well as metadata such as emoji usage counters. It uses [`pleroma_settings_store`](https://docs-develop.pleroma.social/backend/API/differences_in_mastoapi_responses/#accounts) to do it if it's available. If there's some other endpoint that handles your value, it doesn't belong here. - + + Sample: + ``` + settings: { + autoPlayGif: true, + displayMedia: true, + deleteModal: true, + unfollowModal: false, + frequentlyUsedEmojis: { + grinning: 1, + 'star-struck': 1 + }, + onboarded: false, + defaultPrivacy: 'private', + demetricator: false, + saved: true, + notifications: { + alerts: { + favourite: true, + follow: true, + mention: true, + poll: true, + reblog: true + }, + quickFilter: { + active: 'all', + advanced: false, + show: true + }, + shows: { + favourite: true, + follow: true, + mention: true, + poll: true, + reblog: true + }, + sounds: { + favourite: true, + follow: true, + mention: true, + poll: true, + reblog: true + } + }, + theme: 'azure', + 'public': { + other: { + onlyMedia: false + }, + regex: { + body: '' + } + }, + direct: { + regex: { + body: '' + } + }, + community: { + other: { + onlyMedia: false + }, + regex: { + body: '' + } + }, + boostModal: false, + dyslexicFont: false, + expandSpoilers: false, + skinTone: 1, + trends: { + show: true + }, + reduceMotion: false, + columns: [ + { + id: 'COMPOSE', + params: {}, + uuid: '8200299a-f689-45ad-ad33-c9eb20b6286c' + }, + { + id: 'HOME', + params: {}, + uuid: '1b1f69f4-d024-4d31-b5cd-b45fe77f4dc1' + }, + { + id: 'NOTIFICATIONS', + params: {}, + uuid: 'e8c3904c-bf54-4047-baaa-aa786afebb3b' + } + ], + systemFont: false, + home: { + regex: { + body: '' + }, + shows: { + reblog: true, + reply: true + } + } + }, + ``` + - `push_notifications` - `mutes` @@ -55,8 +370,57 @@ If it's not documented, it's because I inherited it from Mastodon and I don't kn - `media_attachments` - `notifications` + + Sample: + ``` + notifications: { + items: [ + { + id: '27', + type: 'mention', + account: '9uXUwPp1pwGsA2Qh3A', + created_at: '2020-04-29T15:11:54.000Z', + status: '9uXVnHKu7Lu9BrXvCC' + }, + { + id: '8', + type: 'mention', + account: '9toQ7nsnbhnTcNVBxI', + created_at: '2020-04-27T19:16:44.000Z', + status: '9uTicLRt0ZoVX25ZvE' + }, + { + id: '7', + type: 'favourite', + account: '9toQ7nsnbhnTcNVBxI', + created_at: '2020-04-27T19:16:25.000Z', + status: '9uThsXbbTg6luknEmG' + } + ], + hasMore: true, + top: false, + unread: 0, + isLoading: false, + queuedNotifications: [], + totalQueuedNotificationsCount: 0, + lastRead: -1 + }, + ``` -- `height_cache` +- `height_cache` + + Sample: + ``` + height_cache: { + '9t06sd:home_timeline': { + '9uXhrY530I85jJvpwW': 164.171875, + '9uXVdgMQDqa1uGgESG': 300.140625, + '9uXWs4FmHnJW17zncW': 852.171875, + '9uXX4IfAXO0yBNhmQy': 166.171875, + '9uXXThi8XzE56gCtE0': 145.140625 + } + }, + ``` - `custom_emojis` @@ -90,7 +454,26 @@ If it's not documented, it's because I inherited it from Mastodon and I don't kn - `patron` - Data related to [soapbox-patron](https://gitlab.com/soapbox-pub/soapbox-patron) -- `soapbox` - Soapbox specific configuration pulled from `/instance/soapbox.json`. The configuration file isn't required and this map can be empty. +- `soapbox` - Soapbox specific configuration pulled from `/instance/soapbox.json`. The configuration file isn't required and this map can be empty. + + Sample: + ``` + soapbox: { + logo: 'https://support.wirelessmessaging.com/temp/tga/teci_social_logo.svg', + promoPanel: { + items: [ + { + icon: 'comment-o', + text: 'TECI blog', + url: 'https://www.teci.world/blog' + } + ] + }, + extensions: { + patron: false + } + }, + ``` - `instance` - Instance data pulled from `/api/v1/instance` @@ -98,6 +481,6 @@ If it's not documented, it's because I inherited it from Mastodon and I don't kn - `auth` - Data used for authentication - - `app` - Map containing the app used to make app requests such as register/login and its access token. +- `app` - Map containing the app used to make app requests such as register/login and its access token. - - `user` - Map containing the access token of the logged in user. +- `user` - Map containing the access token of the logged in user.