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 Freeze for Scraper
impl !RefUnwindSafe for Scraper
impl Send for Scraper
impl Sync for Scraper
impl Unpin for Scraper
impl !UnwindSafe 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