diff options
Diffstat (limited to 'display')
-rw-r--r-- | display/mod.rs | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/display/mod.rs b/display/mod.rs deleted file mode 100644 index 24f7e33..0000000 --- a/display/mod.rs +++ /dev/null @@ -1,147 +0,0 @@ -extern crate termion; - -use self::termion::color; - -use ::tw; - -use std; - -fn color_for(handle: &String) -> termion::color::Fg<&color::Color> { - let color_map: Vec<&color::Color> = vec![ - &color::Blue, - &color::Cyan, - &color::Green, - &color::LightBlue, - &color::LightCyan, - &color::LightGreen, - &color::LightMagenta, - &color::LightYellow, - &color::Magenta, - &color::Yellow - ]; - - let mut quot_hash_quot = std::num::Wrapping(0); - for b in handle.as_bytes().iter() { - quot_hash_quot = quot_hash_quot + std::num::Wrapping(*b); - } - color::Fg(color_map[quot_hash_quot.0 as usize % color_map.len()]) -} - -pub trait Render { - fn render(self, tweeter: &::tw::TwitterCache); -} - -impl Render for tw::events::Event { - fn render(self, tweeter: &::tw::TwitterCache) { - match self { - tw::events::Event::Deleted { user_id, twete_id } => { - if let Some(handle) = tweeter.retrieve_user(&user_id).map(|x| &x.handle) { - if let Some(_tweet) = tweeter.retrieve_tweet(&twete_id) { - println!("-------------DELETED------------------"); - render_twete(&twete_id, tweeter); - println!("-------------DELETED------------------"); - } else { - println!("dunno what, but do know who: {} - {}", user_id, handle); - } - } else { - println!("delete..."); - println!("dunno who..."); - } - }, - tw::events::Event::RT_RT { user_id, twete_id } => { - println!("---------------------------------"); - let user = tweeter.retrieve_user(&user_id).unwrap(); - println!(" +rt_rt : {} (@{})", user.name, user.handle); - render_twete(&twete_id, tweeter); - }, - tw::events::Event::Fav_RT { user_id, twete_id } => { - println!("---------------------------------"); - let user = tweeter.retrieve_user(&user_id).unwrap(); - println!(" +rt_fav : {} (@{})", user.name, user.handle); - render_twete(&twete_id, tweeter); - }, - tw::events::Event::Fav { user_id, twete_id } => { - println!("---------------------------------"); - let user = tweeter.retrieve_user(&user_id).unwrap(); - println!("{} +fav : {} (@{}){}", color::Fg(color::Yellow), user.name, user.handle, color::Fg(color::Reset)); - render_twete(&twete_id, tweeter); - }, - tw::events::Event::Unfav { user_id, twete_id } => { - println!("---------------------------------"); - let user = tweeter.retrieve_user(&user_id).unwrap(); - println!("{} -fav : {} (@{}){}", color::Fg(color::Yellow), user.name, user.handle, color::Fg(color::Reset)); - render_twete(&twete_id, tweeter); - }, - tw::events::Event::Followed { user_id } => { - println!("---------------------------------"); - let user = tweeter.retrieve_user(&user_id).unwrap(); - println!(" +fl : {} (@{})", user.name, user.handle); - }, - tw::events::Event::Unfollowed { user_id } => { - println!("---------------------------------"); - let user = tweeter.retrieve_user(&user_id).unwrap(); - println!(" -fl : {} (@{})", user.name, user.handle); - } - /* - Blocked(user_id) => { - }, - */ - } - println!(""); - } -} - -pub fn render_twete(twete_id: &String, tweeter: &tw::TwitterCache) { - let id_color = color::Fg(color::Rgb(180, 80, 40)); - let twete = tweeter.retrieve_tweet(twete_id).unwrap(); - // if we got the tweet, the API gave us the user too - let user = tweeter.retrieve_user(&twete.author_id).unwrap(); - match twete.rt_tweet { - Some(ref rt_id) => { - // same for a retweet - let rt = tweeter.retrieve_tweet(rt_id).unwrap(); - // and its author - let rt_author = tweeter.retrieve_user(&rt.author_id).unwrap(); - println!("{} id:{} (rt_id:{}){}", - id_color, rt.internal_id, twete.internal_id, color::Fg(color::Reset) - ); - println!(" {}{}{} ({}@{}{}) via {}{}{} ({}@{}{}) RT:", - color_for(&rt_author.handle), rt_author.name, color::Fg(color::Reset), - color_for(&rt_author.handle), rt_author.handle, color::Fg(color::Reset), - color_for(&user.handle), user.name, color::Fg(color::Reset), - color_for(&user.handle), user.handle, color::Fg(color::Reset) - ); - } - None => { - println!("{} id:{}{}", - id_color, twete.internal_id, color::Fg(color::Reset) - ); - println!(" {}{}{} ({}@{}{})", - color_for(&user.handle), user.name, color::Fg(color::Reset), - color_for(&user.handle), user.handle, color::Fg(color::Reset) - ); - } - } - - println!(" {}", twete.text.replace("\r", "\\r").split("\n").collect::<Vec<&str>>().join("\n ")); - - if let Some(ref qt_id) = twete.quoted_tweet_id { - if let Some(ref qt) = tweeter.retrieve_tweet(qt_id) { - let qt_author = tweeter.retrieve_user(&qt.author_id).unwrap(); - println!("{} id:{}{}", - id_color, qt.internal_id, color::Fg(color::Reset) - ); - println!( - " {}{}{} ({}@{}{})", - color_for(&qt_author.handle), qt_author.name, color::Fg(color::Reset), - color_for(&qt_author.handle), qt_author.handle, color::Fg(color::Reset) - ); - println!( - " {}", - qt.text.replace("\r", "\\r").split("\n").collect::<Vec<&str>>().join("\n ") - ); - } else { - println!(" << don't have quoted tweet! >>"); - } - } -} |