module Tw class Client def mentions Twitter.mentions.map{|m| Tw::Tweet.new(:id => m.id, :user => m.user.screen_name, :text => m.text, :time => m.created_at, :fav_count => m.favorite_count, :rt_count => m.retweet_count) } end def search(word) Twitter.search(word).results.map{|m| Tw::Tweet.new(:id => m.id, :user => m.from_user, :text => m.text, :time => m.created_at, :fav_count => m.favorite_count, :rt_count => m.retweet_count) } end def home_timeline Twitter.home_timeline.map{|m| Tw::Tweet.new(:id => m.id, :user => m.user.screen_name, :text => m.text, :time => m.created_at, :fav_count => m.favorite_count, :rt_count => m.retweet_count) } end def user_timeline(user) Twitter.user_timeline(user).map{|m| Tw::Tweet.new(:id => m.id, :user => m.user.screen_name, :text => m.text, :time => m.created_at, :fav_count => m.favorite_count, :rt_count => m.retweet_count) } end def list_timeline(user,list) Twitter.list_timeline(user, list).map{|m| Tw::Tweet.new(:id => m.id, :user => m.user.screen_name, :text => m.text, :time => m.created_at, :fav_count => m.favorite_count, :rt_count => m.retweet_count) } end def direct_messages [Twitter.direct_messages.map{|m| Tw::Tweet.new(:id => m.id, :user => m.sender.screen_name, :text => m.text, :time => m.created_at) }, Twitter.direct_messages_sent.map{|m| Tw::Tweet.new(:id => m.id, :user => { :from => m.sender.screen_name, :to => m.recipient.screen_name }, :text => m.text, :time => m.created_at) }].flatten end def tweet(message, opts={}) res = Twitter.update message, opts puts res.text puts "http://twitter.com/#{res.user.screen_name}/status/#{res.id}" puts res.created_at end def tweet_with_file(message, file, opts={}) res = Twitter.update_with_media message, file, opts puts res.text puts "http://twitter.com/#{res.user.screen_name}/status/#{res.id}" puts res.created_at end def direct_message_create(to, message) res = Twitter.direct_message_create to, message puts res.text puts res.created_at end def show_status(status_id) res = Twitter.status(status_id) line = CGI.unescapeHTML res.text line += " #{res.favorite_count}Fav" if res.favorite_count.to_i > 0 line += " #{res.retweet_count}RT" if res.retweet_count.to_i > 0 puts line.colorize(/@[a-zA-Z0-9_]+|\d+RT|\d+Fav/) puts "http://twitter.com/#{res.user.screen_name}/status/#{res.id}" puts res.created_at end def favorite(status_id) Twitter.favorite status_id end def retweet(status_id) Twitter.retweet status_id end end end