agent_twitter_client/models/
tweets.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Deserialize, Serialize)]
5pub struct Tweet {
6 pub ext_views: Option<i32>,
7 pub created_at: Option<String>,
8 pub bookmark_count: Option<i32>,
9 pub conversation_id: Option<String>,
10 pub hashtags: Vec<String>,
11 pub html: Option<String>,
12 pub id: Option<String>,
13 pub in_reply_to_status: Option<Box<Tweet>>,
14 pub in_reply_to_status_id: Option<String>,
15 pub is_quoted: Option<bool>,
16 pub is_pin: Option<bool>,
17 pub is_reply: Option<bool>,
18 pub is_retweet: Option<bool>,
19 pub is_self_thread: Option<bool>,
20 pub likes: Option<i32>,
21 pub name: Option<String>,
22 pub mentions: Vec<Mention>,
23 pub permanent_url: Option<String>,
24 pub photos: Vec<Photo>,
25 pub place: Option<PlaceRaw>,
26 pub quoted_status: Option<Box<Tweet>>,
27 pub quoted_status_id: Option<String>,
28 pub replies: Option<i32>,
29 pub retweets: Option<i32>,
30 pub retweeted_status: Option<Box<Tweet>>,
31 pub retweeted_status_id: Option<String>,
32 pub text: Option<String>,
33 pub thread: Vec<Tweet>,
34 pub time_parsed: Option<DateTime<Utc>>,
35 pub timestamp: Option<i64>,
36 pub urls: Vec<String>,
37 pub user_id: Option<String>,
38 pub username: Option<String>,
39 pub videos: Vec<Video>,
40 pub views: Option<i32>,
41 pub sensitive_content: Option<bool>,
42 pub poll: Option<PollV2>,
43 pub quote_count: Option<i32>,
44 pub reply_count: Option<i32>,
45 pub retweet_count: Option<i32>,
46 pub screen_name: Option<String>,
47 pub thread_id: Option<String>,
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize)]
51pub struct Mention {
52 pub id: String,
53 pub username: Option<String>,
54 pub name: Option<String>,
55}
56
57#[derive(Debug, Clone, Serialize, Deserialize)]
58pub struct Photo {
59 pub id: String,
60 pub url: String,
61 pub alt_text: Option<String>,
62}
63
64#[derive(Debug, Clone, Serialize, Deserialize)]
65pub struct Video {
66 pub id: String,
67 pub preview: String,
68 pub url: Option<String>,
69}
70
71#[derive(Debug, Clone, Serialize, Deserialize)]
72pub struct PlaceRaw {
73 pub id: Option<String>,
74 pub place_type: Option<String>,
75 pub name: Option<String>,
76 pub full_name: Option<String>,
77 pub country_code: Option<String>,
78 pub country: Option<String>,
79 pub bounding_box: Option<BoundingBox>,
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize)]
83pub struct BoundingBox {
84 #[serde(rename = "type")]
85 pub type_: Option<String>,
86 pub coordinates: Option<Vec<Vec<Vec<f64>>>>,
87}
88
89#[derive(Debug, Clone, Serialize, Deserialize)]
90pub struct PollV2 {
91 pub id: Option<String>,
92 pub end_datetime: Option<String>,
93 pub voting_status: Option<String>,
94 pub options: Vec<PollOption>,
95}
96
97#[derive(Debug, Clone, Serialize, Deserialize)]
98pub struct PollOption {
99 pub position: Option<i32>,
100 pub label: String,
101 pub votes: Option<i32>,
102}