diff options
Diffstat (limited to 'commands')
-rw-r--r-- | commands/del.rs | 0 | ||||
-rw-r--r-- | commands/fav.rs | 35 | ||||
-rw-r--r-- | commands/look_up.rs | 32 | ||||
-rw-r--r-- | commands/mod.rs | 46 | ||||
-rw-r--r-- | commands/quit.rs | 18 | ||||
-rw-r--r-- | commands/show_cache.rs | 31 | ||||
-rw-r--r-- | commands/twete.rs | 184 | ||||
-rw-r--r-- | commands/view.rs | 22 |
8 files changed, 0 insertions, 368 deletions
diff --git a/commands/del.rs b/commands/del.rs deleted file mode 100644 index e69de29..0000000 --- a/commands/del.rs +++ /dev/null diff --git a/commands/fav.rs b/commands/fav.rs deleted file mode 100644 index 3e2b00d..0000000 --- a/commands/fav.rs +++ /dev/null @@ -1,35 +0,0 @@ -use tw; -use ::Queryer; - -use commands::Command; - -use std::str::FromStr; - -static FAV_TWEET_URL: &str = "https://api.twitter.com/1.1/favorites/create.json"; -static UNFAV_TWEET_URL: &str = "https://api.twitter.com/1.1/favorites/destroy.json"; - -pub static UNFAV: Command = Command { - keyword: "unfav", - params: 1, - exec: unfav -}; - -fn unfav(line: String, tweeter: &mut tw::TwitterCache, queryer: &mut Queryer) { - // TODO handle this unwrap - let inner_twid = u64::from_str(&line).unwrap(); - let twete = tweeter.tweet_by_innerid(inner_twid).unwrap(); - queryer.do_api_post(&format!("{}?id={}", UNFAV_TWEET_URL, twete.id)); -} - -pub static FAV: Command = Command { - keyword: "fav", - params: 1, - exec: fav -}; - -fn fav(line: String, tweeter: &mut tw::TwitterCache, queryer: &mut Queryer) { - // TODO handle this unwrap - let inner_twid = u64::from_str(&line).unwrap(); - let twete = tweeter.tweet_by_innerid(inner_twid).unwrap(); - queryer.do_api_post(&format!("{}?id={}", FAV_TWEET_URL, twete.id)); -} diff --git a/commands/look_up.rs b/commands/look_up.rs deleted file mode 100644 index d04f984..0000000 --- a/commands/look_up.rs +++ /dev/null @@ -1,32 +0,0 @@ -use tw; -use ::Queryer; - -use commands::Command; - -pub static LOOK_UP_USER: Command = Command { - keyword: "look_up_user", - params: 1, - exec: look_up_user -}; - -fn look_up_user(line: String, tweeter: &mut tw::TwitterCache, mut queryer: &mut Queryer) { - if let Some(user) = tweeter.fetch_user(&line, &mut queryer) { - println!("{:?}", user); - } else { -// println!("Couldn't retrieve {}", userid); - } -} - -pub static LOOK_UP_TWEET: Command = Command { - keyword: "look_up_tweet", - params: 1, - exec: look_up_tweet -}; - -fn look_up_tweet(line: String, tweeter: &mut tw::TwitterCache, mut queryer: &mut Queryer) { - if let Some(tweet) = tweeter.fetch_tweet(&line, &mut queryer) { - println!("{:?}", tweet); - } else { -// println!("Couldn't retrieve {}", tweetid); - } -} diff --git a/commands/mod.rs b/commands/mod.rs deleted file mode 100644 index fc66bec..0000000 --- a/commands/mod.rs +++ /dev/null @@ -1,46 +0,0 @@ -use tw; -use ::Queryer; - -pub struct Command { - pub keyword: &'static str, - pub params: u8, - pub exec: fn(line: String, tweeter: &mut tw::TwitterCache, queryer: &mut Queryer) -} - -mod show_cache; -mod twete; -mod look_up; -mod view; -mod quit; -mod fav; - -pub static COMMANDS: &[&Command] = &[ - &show_cache::SHOW_CACHE, - &quit::QUIT, - &look_up::LOOK_UP_USER, - &look_up::LOOK_UP_TWEET, - &view::VIEW, - &fav::UNFAV, - &fav::FAV, - &twete::DEL, - &twete::TWETE, - &twete::QUOTE, - &twete::RETWETE, - &twete::REP, - &twete::THREAD - /* - &QUIT, - &LOOK_UP_USER, - &LOOK_UP_TWEET, - &VIEW, - &UNFAV, - &FAV, - &DEL, - &TWETE, - "E, - &RETWETE, - &REP, - &THREAD - ]; - */ -]; diff --git a/commands/quit.rs b/commands/quit.rs deleted file mode 100644 index 982c48f..0000000 --- a/commands/quit.rs +++ /dev/null @@ -1,18 +0,0 @@ -use tw; -use ::Queryer; - -use commands::Command; - -use std::process::exit; - -pub static QUIT: Command = Command { - keyword: "q", - params: 0, - exec: quit -}; - -fn quit(_line: String, tweeter: &mut tw::TwitterCache, _queryer: &mut Queryer) { - println!("Bye bye!"); - tweeter.store_cache(); - exit(0); -} diff --git a/commands/show_cache.rs b/commands/show_cache.rs deleted file mode 100644 index 3c31697..0000000 --- a/commands/show_cache.rs +++ /dev/null @@ -1,31 +0,0 @@ -use tw; -use ::Queryer; - -use commands::Command; - -pub static SHOW_CACHE: Command = Command { - keyword: "show_cache", - params: 0, - exec: show_cache -}; - -fn show_cache(line: String, tweeter: &mut tw::TwitterCache, mut queryer: &mut Queryer) { - println!("----* USERS *----"); - for (uid, user) in &tweeter.users { - println!("User: {} -> {:?}", uid, user); - } - println!("----* TWEETS *----"); - for (tid, tweet) in &tweeter.tweets { - println!("Tweet: {} -> {:?}", tid, tweet); - } - println!("----* FOLLOWERS *----"); - for uid in &tweeter.followers.clone() { - let user_res = tweeter.fetch_user(uid, &mut queryer); - match user_res { - Some(user) => { - println!("Follower: {} - {:?}", uid, user); - } - None => { println!(" ..."); } - } - } -} diff --git a/commands/twete.rs b/commands/twete.rs deleted file mode 100644 index ecc3f98..0000000 --- a/commands/twete.rs +++ /dev/null @@ -1,184 +0,0 @@ -use tw; -use ::Queryer; - -use commands::Command; - -use std::str::FromStr; - -static DEL_TWEET_URL: &str = "https://api.twitter.com/1.1/statuses/destroy"; -static RT_TWEET_URL: &str = "https://api.twitter.com/1.1/statuses/retweet"; -static CREATE_TWEET_URL: &str = "https://api.twitter.com/1.1/statuses/update.json"; - -pub static DEL: Command = Command { - keyword: "del", - params: 1, - exec: del -}; - -fn del(line: String, tweeter: &mut tw::TwitterCache, queryer: &mut Queryer) { - let inner_twid = u64::from_str(&line).unwrap(); - let twete = tweeter.tweet_by_innerid(inner_twid).unwrap(); - queryer.do_api_post(&format!("{}/{}.json", DEL_TWEET_URL, twete.id)); -} - -pub static TWETE: Command = Command { - keyword: "t", - params: 1, - exec: twete -}; - -fn twete(line: String, _tweeter: &mut tw::TwitterCache, queryer: &mut Queryer) { - let text = line.trim(); - let substituted = ::url_encode(text); - println!("msg len: {}", text.len()); - println!("excessively long? {}", text.len() > 140); - if text.len() > 140 { - queryer.do_api_post(&format!("{}?status={}", CREATE_TWEET_URL, substituted)); - } else { - queryer.do_api_post(&format!("{}?status={}&weighted_character_count=true", CREATE_TWEET_URL, substituted)); - } -// println!("{}", &format!("{}?status={}", CREATE_TWEET_URL, substituted)); -} - -pub static THREAD: Command = Command { - keyword: "thread", - params: 2, - exec: thread -}; - -fn thread(line: String, tweeter: &mut tw::TwitterCache, queryer: &mut Queryer) { - let mut text: String = line.trim().to_string(); - if let Some(id_end_idx) = text.find(" ") { - let reply_bare = text.split_off(id_end_idx + 1); - let reply = reply_bare.trim(); - let id_str = text.trim(); - if reply.len() > 0 { - if let Some(inner_twid) = u64::from_str(&id_str).ok() { - if let Some(twete) = tweeter.tweet_by_innerid(inner_twid) { - let handle = &tweeter.retrieve_user(&twete.author_id).unwrap().handle; - // TODO: definitely breaks if you change your handle right now - if handle == &tweeter.current_user.handle { - let substituted = ::url_encode(reply); - queryer.do_api_post(&format!("{}?status={}&in_reply_to_status_id={}", CREATE_TWEET_URL, substituted, twete.id)); - } else { - println!("you can only thread your own tweets"); - // ask if it should .@ instead? - } - let substituted = ::url_encode(reply); - queryer.do_api_post(&format!("{}?status={}&in_reply_to_status_id={}", CREATE_TWEET_URL, substituted, twete.id)); - } - } - } else { - println!("thread <id> your sik reply"); - } - } else { - println!("thread <id> your sik reply"); - } -} - -pub static REP: Command = Command { - keyword: "rep", - params: 2, - exec: rep -}; - -fn rep(line: String, tweeter: &mut tw::TwitterCache, queryer: &mut Queryer) { - let mut text: String = line.trim().to_string(); - if let Some(id_end_idx) = text.find(" ") { - let reply_bare = text.split_off(id_end_idx + 1); - let reply = reply_bare.trim(); - let id_str = text.trim(); - if reply.len() > 0 { - if let Some(inner_twid) = u64::from_str(&id_str).ok() { - if let Some(twete) = tweeter.tweet_by_innerid(inner_twid) { - // get handles to reply to... - let author_handle = tweeter.retrieve_user(&twete.author_id).unwrap().handle.to_owned(); - let mut ats: Vec<String> = twete.get_mentions().into_iter().map(|x| x.to_owned()).collect(); //std::collections::HashSet::new(); - /* - for handle in twete.get_mentions() { - ats.insert(handle); - } - */ - ats.remove_item(&author_handle); - ats.insert(0, author_handle); - // no idea why i have to .to_owned() here --v-- what about twete.rt_tweet is a move? - if let Some(rt_tweet) = twete.rt_tweet.to_owned().and_then(|id| tweeter.retrieve_tweet(&id)) { - let rt_author_handle = tweeter.retrieve_user(&rt_tweet.author_id).unwrap().handle.to_owned(); - ats.remove_item(&rt_author_handle); - ats.insert(1, rt_author_handle); - } - if let Some(qt_tweet) = twete.quoted_tweet_id.to_owned().and_then(|id| tweeter.retrieve_tweet(&id)) { - let qt_author_handle = tweeter.retrieve_user(&qt_tweet.author_id).unwrap().handle.to_owned(); - ats.remove_item(&qt_author_handle); - ats.insert(1, qt_author_handle); - } - //let ats_vec: Vec<&str> = ats.into_iter().collect(); - //let full_reply = format!("{} {}", ats_vec.join(" "), reply); - let decorated_ats: Vec<String> = ats.into_iter().map(|x| format!("@{}", x)).collect(); - let full_reply = format!("{} {}", decorated_ats.join(" "), reply); - let substituted = ::url_encode(&full_reply); -// println!("{}", (&format!("{}?status={}&in_reply_to_status_id={}", CREATE_TWEET_URL, substituted, twete.id))); - queryer.do_api_post(&format!("{}?status={}&in_reply_to_status_id={}", CREATE_TWEET_URL, substituted, twete.id)); - } - } - } else { - println!("rep <id> your sik reply"); - } - } else { - println!("rep <id> your sik reply"); - } -} - -pub static QUOTE: Command = Command { - keyword: "qt", - params: 2, - exec: quote -}; - -fn quote(line: String, tweeter: &mut tw::TwitterCache, queryer: &mut Queryer) { - let mut text: String = line.trim().to_string(); - if let Some(id_end_idx) = text.find(" ") { - let reply_bare = text.split_off(id_end_idx + 1); - let reply = reply_bare.trim(); - let id_str = text.trim(); - if reply.len() > 0 { - if let Some(inner_twid) = u64::from_str(&id_str).ok() { - if let Some(twete) = tweeter.tweet_by_innerid(inner_twid) { - let substituted = ::url_encode(reply); - let attachment_url = ::url_encode( - &format!( - "https://www.twitter.com/{}/status/{}", - tweeter.retrieve_user(&twete.author_id).unwrap().handle, - twete.id - ) - ); - println!("{}", substituted); - queryer.do_api_post( - &format!("{}?status={}&attachment_url={}", - CREATE_TWEET_URL, - substituted, - attachment_url - ) - ); - } - } - } else { - println!("rep <id> your sik reply"); - } - } else { - println!("rep <id> your sik reply"); - } -} - -pub static RETWETE: Command = Command { - keyword: "rt", - params: 1, - exec: retwete -}; - -fn retwete(line: String, tweeter: &mut tw::TwitterCache, queryer: &mut Queryer) { - let inner_twid = u64::from_str(&line).unwrap(); - let twete = tweeter.tweet_by_innerid(inner_twid).unwrap(); - queryer.do_api_post(&format!("{}/{}.json", RT_TWEET_URL, twete.id)); -} - diff --git a/commands/view.rs b/commands/view.rs deleted file mode 100644 index d01ff1b..0000000 --- a/commands/view.rs +++ /dev/null @@ -1,22 +0,0 @@ -use tw; -use ::Queryer; - -use commands::Command; - -use std::str::FromStr; - -use display; - -pub static VIEW: Command = Command { - keyword: "view", - params: 1, - exec: view -}; - -fn view(line: String, tweeter: &mut tw::TwitterCache, _queryer: &mut Queryer) { - // TODO handle this unwrap - let inner_twid = u64::from_str(&line).unwrap(); - let twete = tweeter.tweet_by_innerid(inner_twid).unwrap(); - display::render_twete(&twete.id, tweeter); - println!("link: https://twitter.com/i/web/status/{}", twete.id); -} |