class T::Stream
Constants
- TWEET_HEADINGS_FORMATTING
Public Class Methods
new(*)
click to toggle source
Calls superclass method
# File lib/t/stream.rb, line 22 def initialize(*) @rcfile = T::RCFile.instance super end
Public Instance Methods
all()
click to toggle source
# File lib/t/stream.rb, line 31 def all streaming_client.before_request do if options["csv"] require "csv" say TWEET_HEADINGS.to_csv elsif options["long"] && STDOUT.tty? headings = Array.new(TWEET_HEADINGS.size) do |index| TWEET_HEADINGS_FORMATTING[index] % TWEET_HEADINGS[index] end print_table([headings]) end end streaming_client.sample do |tweet| next unless tweet.is_a?(Twitter::Tweet) if options["csv"] print_csv_tweet(tweet) elsif options["long"] array = build_long_tweet(tweet).each_with_index.collect do |element, index| TWEET_HEADINGS_FORMATTING[index] % element end print_table([array], truncate: STDOUT.tty?) else print_message(tweet.user.screen_name, tweet.text) end end end
list(user_list)
click to toggle source
# File lib/t/stream.rb, line 65 def list(user_list) owner, list_name = extract_owner(user_list, options) require "t/list" streaming_client.before_request do list = T::List.new list.options = list.options.merge(options) list.options = list.options.merge(reverse: true) list.options = list.options.merge(format: TWEET_HEADINGS_FORMATTING) list.timeline(user_list) end user_ids = client.list_members(owner, list_name).collect(&:id) streaming_client.filter(follow: user_ids.join(",")) do |tweet| next unless tweet.is_a?(Twitter::Tweet) if options["csv"] print_csv_tweet(tweet) elsif options["long"] array = build_long_tweet(tweet).each_with_index.collect do |element, index| TWEET_HEADINGS_FORMATTING[index] % element end print_table([array], truncate: STDOUT.tty?) else print_message(tweet.user.screen_name, tweet.text) end end end
matrix()
click to toggle source
# File lib/t/stream.rb, line 94 def matrix require "t/cli" streaming_client.before_request do cli = T::CLI.new cli.matrix end streaming_client.sample(language: "ja") do |tweet| next unless tweet.is_a?(Twitter::Tweet) say(tweet.text.gsub(/[^\u3000\u3040-\u309f]/, "").reverse, %i[bold green on_black], false) end end
search(keyword, *keywords)
click to toggle source
# File lib/t/stream.rb, line 111 def search(keyword, *keywords) keywords.unshift(keyword) require "t/search" streaming_client.before_request do search = T::Search.new search.options = search.options.merge(options) search.options = search.options.merge(reverse: true) search.options = search.options.merge(format: TWEET_HEADINGS_FORMATTING) search.all(keywords.join(" OR ")) end streaming_client.filter(track: keywords.join(",")) do |tweet| next unless tweet.is_a?(Twitter::Tweet) if options["csv"] print_csv_tweet(tweet) elsif options["long"] array = build_long_tweet(tweet).each_with_index.collect do |element, index| TWEET_HEADINGS_FORMATTING[index] % element end print_table([array], truncate: STDOUT.tty?) else print_message(tweet.user.screen_name, tweet.text) end end end
timeline()
click to toggle source
# File lib/t/stream.rb, line 141 def timeline require "t/cli" streaming_client.before_request do cli = T::CLI.new cli.options = cli.options.merge(options) cli.options = cli.options.merge(reverse: true) cli.options = cli.options.merge(format: TWEET_HEADINGS_FORMATTING) cli.timeline end streaming_client.user do |tweet| next unless tweet.is_a?(Twitter::Tweet) if options["csv"] print_csv_tweet(tweet) elsif options["long"] array = build_long_tweet(tweet).each_with_index.collect do |element, index| TWEET_HEADINGS_FORMATTING[index] % element end print_table([array], truncate: STDOUT.tty?) else print_message(tweet.user.screen_name, tweet.text) end end end
users(user_id, *user_ids)
click to toggle source
# File lib/t/stream.rb, line 170 def users(user_id, *user_ids) user_ids.unshift(user_id) user_ids.collect!(&:to_i) streaming_client.before_request do if options["csv"] require "csv" say TWEET_HEADINGS.to_csv elsif options["long"] && STDOUT.tty? headings = Array.new(TWEET_HEADINGS.size) do |index| TWEET_HEADINGS_FORMATTING[index] % TWEET_HEADINGS[index] end print_table([headings]) end end streaming_client.filter(follow: user_ids.join(",")) do |tweet| next unless tweet.is_a?(Twitter::Tweet) if options["csv"] print_csv_tweet(tweet) elsif options["long"] array = build_long_tweet(tweet).each_with_index.collect do |element, index| TWEET_HEADINGS_FORMATTING[index] % element end print_table([array], truncate: STDOUT.tty?) else print_message(tweet.user.screen_name, tweet.text) end end end
Private Instance Methods
streaming_client()
click to toggle source
# File lib/t/stream.rb, line 202 def streaming_client return @streaming_client if @streaming_client @rcfile.path = options["profile"] if options["profile"] @streaming_client = Twitter::Streaming::Client.new do |config| config.consumer_key = @rcfile.active_consumer_key config.consumer_secret = @rcfile.active_consumer_secret config.access_token = @rcfile.active_token config.access_token_secret = @rcfile.active_secret end end