class Ruboty::Handlers::TwitterTL
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/ruboty/handlers/twitter_tl.rb, line 16 def initialize(*args) super @stream = Ruboty::TwitterTL::Stream.new(robot) @stream.start(users) end
Public Instance Methods
follow(message)
click to toggle source
# File lib/ruboty/handlers/twitter_tl.rb, line 23 def follow(message) username = message[:name] userinfo = { message: message.original.except(:robot), twitter_id: @stream.rest.user(username).id } if users.has_value?(userinfo) message.reply("Already following '@#{username}'.") else users.update(username => userinfo) @stream.update(users) message.reply("Followed '@#{username}'.") end rescue Twitter::Error::NotFound message.reply("'@#{username}' is not found.") rescue Twitter::Error::Forbidden message.reply("Unable to verify your credentials.") end
following(message)
click to toggle source
# File lib/ruboty/handlers/twitter_tl.rb, line 54 def following(message) if users.empty? message.reply("Following no user.") else list = users.select { |_, userinfo| userinfo[:message][:from] == message.original[:from] } text = list.keys.map { |username| "@#{username}" }.join("\n") message.reply(text, code: true) end end
unfollow(message)
click to toggle source
# File lib/ruboty/handlers/twitter_tl.rb, line 43 def unfollow(message) username = message[:name] if userinfo = users.delete(username) @stream.update(users) message.reply("Unfollowed '@#{username}'.") else message.reply("'@#{username}' is not found.") end end
users()
click to toggle source
# File lib/ruboty/handlers/twitter_tl.rb, line 64 def users robot.brain.data[Ruboty::TwitterTL::NAMESPACE] ||= {} end