pub struct Scraper {
pub twitter_client: TwitterClient,
}Fields§
§twitter_client: TwitterClientImplementations§
Source§impl Scraper
impl Scraper
Sourcepub async fn new() -> Result<Self>
pub async fn new() -> Result<Self>
Examples found in repository?
More examples
examples/get_message.rs (line 7)
5async fn main() -> Result<()> {
6 dotenv().ok();
7 let mut scraper = Scraper::new().await?;
8 let cookie_string = std::env::var("TWITTER_COOKIE_STRING")
9 .expect("TWITTER_COOKIE_STRING environment variable not set");
10 let username = std::env::var("TWITTER_USERNAME")
11 .expect("TWITTER_USERNAME environment variable not set");
12 scraper.set_from_cookie_string(&cookie_string).await?;
13 let dm_history = scraper.get_direct_message_conversations(&username, None).await?;
14 println!("Direct message conversations: {:?}", dm_history);
15 Ok(())
16}examples/send_dm.rs (line 8)
6async fn main() -> Result<()> {
7 dotenv().ok();
8 let mut scraper = Scraper::new().await?;
9 let cookie_string = std::env::var("TWITTER_COOKIE_STRING")
10 .expect("TWITTER_COOKIE_STRING environment variable not set");
11 scraper.set_from_cookie_string(&cookie_string).await?;
12 let username = std::env::var("TWITTER_USERNAME")
13 .expect("TWITTER_USERNAME environment variable not set");
14 let dm_history = scraper.get_direct_message_conversations(&username, None).await?;
15
16 let user_id = dm_history.user_id.as_str();
17
18 for conversation in dm_history.conversations {
19 if let Some(last_message) = conversation.messages.last() {
20 let sender_id = last_message.sender_id.as_str();
21 // Only reply if the last message was not from us
22 if sender_id != user_id {
23 let conversation_id = conversation.conversation_id.as_str();
24 let text = last_message.text.as_str();
25 println!("conversation_id: {}", conversation_id);
26 println!("text: {}", text);
27 scraper.send_direct_message(conversation_id, "2").await?;
28 }
29 }
30 }
31
32 Ok(())
33}pub async fn login( &mut self, username: String, password: String, email: Option<String>, two_factor_secret: Option<String>, ) -> Result<()>
pub async fn get_profile(&self, username: &str) -> Result<Profile>
pub async fn send_tweet( &self, text: &str, reply_to: Option<&str>, media_data: Option<Vec<(Vec<u8>, String)>>, ) -> Result<Value>
Sourcepub async fn get_home_timeline(
&self,
count: i32,
seen_tweet_ids: Vec<String>,
) -> Result<Vec<Value>>
pub async fn get_home_timeline( &self, count: i32, seen_tweet_ids: Vec<String>, ) -> Result<Vec<Value>>
Examples found in repository?
More examples
examples/get_message.rs (line 12)
5async fn main() -> Result<()> {
6 dotenv().ok();
7 let mut scraper = Scraper::new().await?;
8 let cookie_string = std::env::var("TWITTER_COOKIE_STRING")
9 .expect("TWITTER_COOKIE_STRING environment variable not set");
10 let username = std::env::var("TWITTER_USERNAME")
11 .expect("TWITTER_USERNAME environment variable not set");
12 scraper.set_from_cookie_string(&cookie_string).await?;
13 let dm_history = scraper.get_direct_message_conversations(&username, None).await?;
14 println!("Direct message conversations: {:?}", dm_history);
15 Ok(())
16}examples/send_dm.rs (line 11)
6async fn main() -> Result<()> {
7 dotenv().ok();
8 let mut scraper = Scraper::new().await?;
9 let cookie_string = std::env::var("TWITTER_COOKIE_STRING")
10 .expect("TWITTER_COOKIE_STRING environment variable not set");
11 scraper.set_from_cookie_string(&cookie_string).await?;
12 let username = std::env::var("TWITTER_USERNAME")
13 .expect("TWITTER_USERNAME environment variable not set");
14 let dm_history = scraper.get_direct_message_conversations(&username, None).await?;
15
16 let user_id = dm_history.user_id.as_str();
17
18 for conversation in dm_history.conversations {
19 if let Some(last_message) = conversation.messages.last() {
20 let sender_id = last_message.sender_id.as_str();
21 // Only reply if the last message was not from us
22 if sender_id != user_id {
23 let conversation_id = conversation.conversation_id.as_str();
24 let text = last_message.text.as_str();
25 println!("conversation_id: {}", conversation_id);
26 println!("text: {}", text);
27 scraper.send_direct_message(conversation_id, "2").await?;
28 }
29 }
30 }
31
32 Ok(())
33}pub async fn get_followers( &self, user_id: &str, count: i32, cursor: Option<String>, ) -> Result<(Vec<Profile>, Option<String>)>
pub async fn get_following( &self, user_id: &str, count: i32, cursor: Option<String>, ) -> Result<(Vec<Profile>, Option<String>)>
pub async fn follow_user(&self, username: &str) -> Result<()>
pub async fn unfollow_user(&self, username: &str) -> Result<()>
pub async fn send_quote_tweet( &self, text: &str, quoted_tweet_id: &str, media_data: Option<Vec<(Vec<u8>, String)>>, ) -> Result<Value>
pub async fn fetch_tweets_and_replies( &self, username: &str, max_tweets: i32, cursor: Option<&str>, ) -> Result<V2QueryTweetsResponse>
pub async fn fetch_tweets_and_replies_by_user_id( &self, user_id: &str, max_tweets: i32, cursor: Option<&str>, ) -> Result<V2QueryTweetsResponse>
pub async fn fetch_list_tweets( &self, list_id: &str, max_tweets: i32, cursor: Option<&str>, ) -> Result<Value>
pub async fn like_tweet(&self, tweet_id: &str) -> Result<Value>
pub async fn retweet(&self, tweet_id: &str) -> Result<Value>
pub async fn create_long_tweet( &self, text: &str, reply_to: Option<&str>, media_ids: Option<Vec<String>>, ) -> Result<Value>
pub async fn get_tweet(&self, id: &str) -> Result<Tweet>
pub async fn search_tweets( &self, query: &str, max_tweets: i32, search_mode: SearchMode, cursor: Option<String>, ) -> Result<QueryTweetsResponse>
pub async fn search_profiles( &self, query: &str, max_profiles: i32, cursor: Option<String>, ) -> Result<QueryProfilesResponse>
pub async fn get_user_tweets( &self, user_id: &str, count: i32, cursor: Option<String>, ) -> Result<V2QueryTweetsResponse>
Sourcepub async fn get_direct_message_conversations(
&self,
screen_name: &str,
cursor: Option<&str>,
) -> Result<DirectMessagesResponse>
pub async fn get_direct_message_conversations( &self, screen_name: &str, cursor: Option<&str>, ) -> Result<DirectMessagesResponse>
Examples found in repository?
examples/get_message.rs (line 13)
5async fn main() -> Result<()> {
6 dotenv().ok();
7 let mut scraper = Scraper::new().await?;
8 let cookie_string = std::env::var("TWITTER_COOKIE_STRING")
9 .expect("TWITTER_COOKIE_STRING environment variable not set");
10 let username = std::env::var("TWITTER_USERNAME")
11 .expect("TWITTER_USERNAME environment variable not set");
12 scraper.set_from_cookie_string(&cookie_string).await?;
13 let dm_history = scraper.get_direct_message_conversations(&username, None).await?;
14 println!("Direct message conversations: {:?}", dm_history);
15 Ok(())
16}More examples
examples/send_dm.rs (line 14)
6async fn main() -> Result<()> {
7 dotenv().ok();
8 let mut scraper = Scraper::new().await?;
9 let cookie_string = std::env::var("TWITTER_COOKIE_STRING")
10 .expect("TWITTER_COOKIE_STRING environment variable not set");
11 scraper.set_from_cookie_string(&cookie_string).await?;
12 let username = std::env::var("TWITTER_USERNAME")
13 .expect("TWITTER_USERNAME environment variable not set");
14 let dm_history = scraper.get_direct_message_conversations(&username, None).await?;
15
16 let user_id = dm_history.user_id.as_str();
17
18 for conversation in dm_history.conversations {
19 if let Some(last_message) = conversation.messages.last() {
20 let sender_id = last_message.sender_id.as_str();
21 // Only reply if the last message was not from us
22 if sender_id != user_id {
23 let conversation_id = conversation.conversation_id.as_str();
24 let text = last_message.text.as_str();
25 println!("conversation_id: {}", conversation_id);
26 println!("text: {}", text);
27 scraper.send_direct_message(conversation_id, "2").await?;
28 }
29 }
30 }
31
32 Ok(())
33}Sourcepub async fn send_direct_message(
&self,
conversation_id: &str,
text: &str,
) -> Result<Value>
pub async fn send_direct_message( &self, conversation_id: &str, text: &str, ) -> Result<Value>
Examples found in repository?
examples/send_dm.rs (line 27)
6async fn main() -> Result<()> {
7 dotenv().ok();
8 let mut scraper = Scraper::new().await?;
9 let cookie_string = std::env::var("TWITTER_COOKIE_STRING")
10 .expect("TWITTER_COOKIE_STRING environment variable not set");
11 scraper.set_from_cookie_string(&cookie_string).await?;
12 let username = std::env::var("TWITTER_USERNAME")
13 .expect("TWITTER_USERNAME environment variable not set");
14 let dm_history = scraper.get_direct_message_conversations(&username, None).await?;
15
16 let user_id = dm_history.user_id.as_str();
17
18 for conversation in dm_history.conversations {
19 if let Some(last_message) = conversation.messages.last() {
20 let sender_id = last_message.sender_id.as_str();
21 // Only reply if the last message was not from us
22 if sender_id != user_id {
23 let conversation_id = conversation.conversation_id.as_str();
24 let text = last_message.text.as_str();
25 println!("conversation_id: {}", conversation_id);
26 println!("text: {}", text);
27 scraper.send_direct_message(conversation_id, "2").await?;
28 }
29 }
30 }
31
32 Ok(())
33}Auto Trait Implementations§
impl !RefUnwindSafe for Scraper
impl !UnwindSafe for Scraper
impl Freeze for Scraper
impl Send for Scraper
impl Sync for Scraper
impl Unpin for Scraper
impl UnsafeUnpin for Scraper
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more