Skip to main content

proto_blue_api/generated/app/bsky/feed/
defs.rs

1// Generated by atproto-codegen. Do not edit.
2//! Lexicon: app.bsky.feed.defs
3
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct BlockedAuthor {
9    pub did: String,
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub viewer: Option<crate::app::bsky::actor::defs::ViewerState>,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
15#[serde(rename_all = "camelCase")]
16pub struct BlockedPost {
17    pub author: BlockedAuthor,
18    pub blocked: bool,
19    pub uri: String,
20}
21
22/// User clicked through to the author of the feed item
23pub const CLICKTHROUGH_AUTHOR: &str = "app.bsky.feed.defs#clickthroughAuthor";
24
25/// User clicked through to the embedded content of the feed item
26pub const CLICKTHROUGH_EMBED: &str = "app.bsky.feed.defs#clickthroughEmbed";
27
28/// User clicked through to the feed item
29pub const CLICKTHROUGH_ITEM: &str = "app.bsky.feed.defs#clickthroughItem";
30
31/// User clicked through to the reposter of the feed item
32pub const CLICKTHROUGH_REPOSTER: &str = "app.bsky.feed.defs#clickthroughReposter";
33
34/// Declares the feed generator returns any types of posts.
35pub const CONTENT_MODE_UNSPECIFIED: &str = "app.bsky.feed.defs#contentModeUnspecified";
36
37/// Declares the feed generator returns posts containing app.bsky.embed.video embeds.
38pub const CONTENT_MODE_VIDEO: &str = "app.bsky.feed.defs#contentModeVideo";
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(rename_all = "camelCase")]
42pub struct FeedViewPost {
43    #[serde(skip_serializing_if = "Option::is_none")]
44    pub feed_context: Option<String>,
45    pub post: PostView,
46    #[serde(skip_serializing_if = "Option::is_none")]
47    pub reason: Option<serde_json::Value>,
48    #[serde(skip_serializing_if = "Option::is_none")]
49    pub reply: Option<ReplyRef>,
50    #[serde(skip_serializing_if = "Option::is_none")]
51    pub req_id: Option<String>,
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(rename_all = "camelCase")]
56pub struct GeneratorView {
57    #[serde(skip_serializing_if = "Option::is_none")]
58    pub accepts_interactions: Option<bool>,
59    #[serde(skip_serializing_if = "Option::is_none")]
60    pub avatar: Option<String>,
61    pub cid: String,
62    #[serde(skip_serializing_if = "Option::is_none")]
63    pub content_mode: Option<String>,
64    pub creator: crate::app::bsky::actor::defs::ProfileView,
65    #[serde(skip_serializing_if = "Option::is_none")]
66    pub description: Option<String>,
67    #[serde(skip_serializing_if = "Option::is_none")]
68    pub description_facets: Option<Vec<crate::app::bsky::richtext::facet::Main>>,
69    pub did: String,
70    pub display_name: String,
71    pub indexed_at: String,
72    #[serde(skip_serializing_if = "Option::is_none")]
73    pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
74    #[serde(skip_serializing_if = "Option::is_none")]
75    pub like_count: Option<i64>,
76    pub uri: String,
77    #[serde(skip_serializing_if = "Option::is_none")]
78    pub viewer: Option<GeneratorViewerState>,
79}
80
81#[derive(Debug, Clone, Serialize, Deserialize)]
82#[serde(rename_all = "camelCase")]
83pub struct GeneratorViewerState {
84    #[serde(skip_serializing_if = "Option::is_none")]
85    pub like: Option<String>,
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
89#[serde(rename_all = "camelCase")]
90pub struct Interaction {
91    #[serde(skip_serializing_if = "Option::is_none")]
92    pub event: Option<String>,
93    #[serde(skip_serializing_if = "Option::is_none")]
94    pub feed_context: Option<String>,
95    #[serde(skip_serializing_if = "Option::is_none")]
96    pub item: Option<String>,
97    #[serde(skip_serializing_if = "Option::is_none")]
98    pub req_id: Option<String>,
99}
100
101/// User liked the feed item
102pub const INTERACTION_LIKE: &str = "app.bsky.feed.defs#interactionLike";
103
104/// User quoted the feed item
105pub const INTERACTION_QUOTE: &str = "app.bsky.feed.defs#interactionQuote";
106
107/// User replied to the feed item
108pub const INTERACTION_REPLY: &str = "app.bsky.feed.defs#interactionReply";
109
110/// User reposted the feed item
111pub const INTERACTION_REPOST: &str = "app.bsky.feed.defs#interactionRepost";
112
113/// Feed item was seen by user
114pub const INTERACTION_SEEN: &str = "app.bsky.feed.defs#interactionSeen";
115
116/// User shared the feed item
117pub const INTERACTION_SHARE: &str = "app.bsky.feed.defs#interactionShare";
118
119#[derive(Debug, Clone, Serialize, Deserialize)]
120#[serde(rename_all = "camelCase")]
121pub struct NotFoundPost {
122    pub not_found: bool,
123    pub uri: String,
124}
125
126#[derive(Debug, Clone, Serialize, Deserialize)]
127#[serde(rename_all = "camelCase")]
128pub struct PostView {
129    pub author: crate::app::bsky::actor::defs::ProfileViewBasic,
130    #[serde(skip_serializing_if = "Option::is_none")]
131    pub bookmark_count: Option<i64>,
132    pub cid: String,
133    #[serde(skip_serializing_if = "Option::is_none")]
134    pub debug: Option<serde_json::Value>,
135    #[serde(skip_serializing_if = "Option::is_none")]
136    pub embed: Option<serde_json::Value>,
137    pub indexed_at: String,
138    #[serde(skip_serializing_if = "Option::is_none")]
139    pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
140    #[serde(skip_serializing_if = "Option::is_none")]
141    pub like_count: Option<i64>,
142    #[serde(skip_serializing_if = "Option::is_none")]
143    pub quote_count: Option<i64>,
144    pub record: serde_json::Value,
145    #[serde(skip_serializing_if = "Option::is_none")]
146    pub reply_count: Option<i64>,
147    #[serde(skip_serializing_if = "Option::is_none")]
148    pub repost_count: Option<i64>,
149    #[serde(skip_serializing_if = "Option::is_none")]
150    pub threadgate: Option<ThreadgateView>,
151    pub uri: String,
152    #[serde(skip_serializing_if = "Option::is_none")]
153    pub viewer: Option<ViewerState>,
154}
155
156#[derive(Debug, Clone, Serialize, Deserialize)]
157#[serde(rename_all = "camelCase")]
158pub struct ReasonPin {}
159
160#[derive(Debug, Clone, Serialize, Deserialize)]
161#[serde(rename_all = "camelCase")]
162pub struct ReasonRepost {
163    pub by: crate::app::bsky::actor::defs::ProfileViewBasic,
164    #[serde(skip_serializing_if = "Option::is_none")]
165    pub cid: Option<String>,
166    pub indexed_at: String,
167    #[serde(skip_serializing_if = "Option::is_none")]
168    pub uri: Option<String>,
169}
170
171#[derive(Debug, Clone, Serialize, Deserialize)]
172#[serde(rename_all = "camelCase")]
173pub struct ReplyRef {
174    #[serde(skip_serializing_if = "Option::is_none")]
175    pub grandparent_author: Option<crate::app::bsky::actor::defs::ProfileViewBasic>,
176    pub parent: serde_json::Value,
177    pub root: serde_json::Value,
178}
179
180/// Request that less content like the given feed item be shown in the feed
181pub const REQUEST_LESS: &str = "app.bsky.feed.defs#requestLess";
182
183/// Request that more content like the given feed item be shown in the feed
184pub const REQUEST_MORE: &str = "app.bsky.feed.defs#requestMore";
185
186#[derive(Debug, Clone, Serialize, Deserialize)]
187#[serde(rename_all = "camelCase")]
188pub struct SkeletonFeedPost {
189    #[serde(skip_serializing_if = "Option::is_none")]
190    pub feed_context: Option<String>,
191    pub post: String,
192    #[serde(skip_serializing_if = "Option::is_none")]
193    pub reason: Option<serde_json::Value>,
194}
195
196#[derive(Debug, Clone, Serialize, Deserialize)]
197#[serde(rename_all = "camelCase")]
198pub struct SkeletonReasonPin {}
199
200#[derive(Debug, Clone, Serialize, Deserialize)]
201#[serde(rename_all = "camelCase")]
202pub struct SkeletonReasonRepost {
203    pub repost: String,
204}
205
206/// Metadata about this post within the context of the thread it is in.
207#[derive(Debug, Clone, Serialize, Deserialize)]
208#[serde(rename_all = "camelCase")]
209pub struct ThreadContext {
210    #[serde(skip_serializing_if = "Option::is_none")]
211    pub root_author_like: Option<String>,
212}
213
214#[derive(Debug, Clone, Serialize, Deserialize)]
215#[serde(rename_all = "camelCase")]
216pub struct ThreadViewPost {
217    #[serde(skip_serializing_if = "Option::is_none")]
218    pub parent: Option<serde_json::Value>,
219    pub post: PostView,
220    #[serde(skip_serializing_if = "Option::is_none")]
221    pub replies: Option<Vec<serde_json::Value>>,
222    #[serde(skip_serializing_if = "Option::is_none")]
223    pub thread_context: Option<ThreadContext>,
224}
225
226#[derive(Debug, Clone, Serialize, Deserialize)]
227#[serde(rename_all = "camelCase")]
228pub struct ThreadgateView {
229    #[serde(skip_serializing_if = "Option::is_none")]
230    pub cid: Option<String>,
231    #[serde(skip_serializing_if = "Option::is_none")]
232    pub lists: Option<Vec<crate::app::bsky::graph::defs::ListViewBasic>>,
233    #[serde(skip_serializing_if = "Option::is_none")]
234    pub record: Option<serde_json::Value>,
235    #[serde(skip_serializing_if = "Option::is_none")]
236    pub uri: Option<String>,
237}
238
239/// Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests.
240#[derive(Debug, Clone, Serialize, Deserialize)]
241#[serde(rename_all = "camelCase")]
242pub struct ViewerState {
243    #[serde(skip_serializing_if = "Option::is_none")]
244    pub bookmarked: Option<bool>,
245    #[serde(skip_serializing_if = "Option::is_none")]
246    pub embedding_disabled: Option<bool>,
247    #[serde(skip_serializing_if = "Option::is_none")]
248    pub like: Option<String>,
249    #[serde(skip_serializing_if = "Option::is_none")]
250    pub pinned: Option<bool>,
251    #[serde(skip_serializing_if = "Option::is_none")]
252    pub reply_disabled: Option<bool>,
253    #[serde(skip_serializing_if = "Option::is_none")]
254    pub repost: Option<String>,
255    #[serde(skip_serializing_if = "Option::is_none")]
256    pub thread_muted: Option<bool>,
257}