class Ruboty::Handlers::TwitterTrack
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/ruboty/handlers/twitter_track.rb, line 16 def initialize(*args) super @stream = Ruboty::TwitterTrack::Stream.new(robot) @stream.start(cache[:message], cache[:terms]) end
Public Instance Methods
cache()
click to toggle source
# File lib/ruboty/handlers/twitter_track.rb, line 67 def cache unless robot.brain.data[Ruboty::TwitterTrack::NAMESPACE] status = { message: nil, terms: {} } robot.brain.data[Ruboty::TwitterTrack::NAMESPACE] = status end robot.brain.data[Ruboty::TwitterTrack::NAMESPACE] end
track(message)
click to toggle source
# File lib/ruboty/handlers/twitter_track.rb, line 23 def track(message) cache[:message] = message.original.except(:robot) message[:term].split(',').each do |term| key = generate_id words = term.strip.split(/\s+/) cache[:terms][key] = words end begin @stream.restart(cache[:message], cache[:terms].values) message.reply("Tracked '#{message[:term]}'.") rescue Twitter::Error::Forbidden message.reply("Unable to verify your credentials.") end end
tracking(message)
click to toggle source
# File lib/ruboty/handlers/twitter_track.rb, line 58 def tracking(message) if cache[:terms].empty? message.reply("Tracking no terms.") else response = cache[:terms].map { |key, words| "#{key}: #{words.join(' ')}" } message.reply(response.join("\n"), code:true) end end
untrack(message)
click to toggle source
# File lib/ruboty/handlers/twitter_track.rb, line 40 def untrack(message) cache[:message] = message.original.except(:robot) key = message[:id].to_i words = cache[:terms].delete(key) unless words message.reply("'#{key}' not found.") return end begin @stream.restart(cache[:message], cache[:terms].values) message.reply("Untracked '#{key}: #{words.join(' ')}'.") rescue Twitter::Error::Forbidden message.reply("Unable to verify your credentials.") end end
Private Instance Methods
generate_id()
click to toggle source
# File lib/ruboty/handlers/twitter_track.rb, line 77 def generate_id id = (100..999).to_a.sample cache[:terms][id].nil? ? id : generate_id end