Restructure receive_event to use case
This is much more readable!
This commit is contained in:
parent
0f56a1a6eb
commit
023cbb3183
1 changed files with 19 additions and 24 deletions
|
@ -249,31 +249,15 @@ module Ebooks
|
||||||
# Receive an event from the twitter stream
|
# Receive an event from the twitter stream
|
||||||
# @param ev [Object] Twitter streaming event
|
# @param ev [Object] Twitter streaming event
|
||||||
def receive_event(ev)
|
def receive_event(ev)
|
||||||
if ev.is_a? Array # Initial array sent on first connection
|
case ev
|
||||||
|
when Array # Initial array sent on first connection
|
||||||
log "Online!"
|
log "Online!"
|
||||||
return
|
return
|
||||||
end
|
when Twitter::DirectMessage
|
||||||
|
|
||||||
if ev.is_a? Twitter::DirectMessage
|
|
||||||
return if ev.sender.screen_name.downcase == @username.downcase # Don't reply to self
|
return if ev.sender.screen_name.downcase == @username.downcase # Don't reply to self
|
||||||
log "DM from @#{ev.sender.screen_name}: #{ev.text}"
|
log "DM from @#{ev.sender.screen_name}: #{ev.text}"
|
||||||
fire(:message, ev)
|
fire(:message, ev)
|
||||||
|
when Twitter::Tweet
|
||||||
elsif ev.respond_to?(:name)
|
|
||||||
case ev.name
|
|
||||||
when :follow
|
|
||||||
return if ev.source.screen_name.downcase == @username.downcase
|
|
||||||
log "Followed by #{ev.source.screen_name}"
|
|
||||||
fire(:follow, ev.source)
|
|
||||||
when :favorite, :unfavorite
|
|
||||||
return if ev.source.screen_name.downcase == @username.downcase # Ignore our own favorites
|
|
||||||
log "@#{ev.source.screen_name} #{ev.name.to_s}d: #{ev.target_object.text}"
|
|
||||||
fire(ev.name, ev.source, ev.target_object)
|
|
||||||
when :user_update
|
|
||||||
update_user_object ev.source
|
|
||||||
end
|
|
||||||
|
|
||||||
elsif ev.is_a? Twitter::Tweet
|
|
||||||
return unless ev.text # If it's not a text-containing tweet, ignore it
|
return unless ev.text # If it's not a text-containing tweet, ignore it
|
||||||
return if ev.user.screen_name.downcase == @username.downcase # Ignore our own tweets
|
return if ev.user.screen_name.downcase == @username.downcase # Ignore our own tweets
|
||||||
|
|
||||||
|
@ -299,10 +283,21 @@ module Ebooks
|
||||||
else
|
else
|
||||||
fire(:timeline, ev)
|
fire(:timeline, ev)
|
||||||
end
|
end
|
||||||
|
when Twitter::Streaming::Event
|
||||||
elsif ev.is_a?(Twitter::Streaming::DeletedTweet) ||
|
case ev.name
|
||||||
ev.is_a?(Twitter::Streaming::Event)
|
when :follow
|
||||||
# pass
|
return if ev.source.screen_name.downcase == @username.downcase
|
||||||
|
log "Followed by #{ev.source.screen_name}"
|
||||||
|
fire(:follow, ev.source)
|
||||||
|
when :favorite, :unfavorite
|
||||||
|
return if ev.source.screen_name.downcase == @username.downcase # Ignore our own favorites
|
||||||
|
log "@#{ev.source.screen_name} #{ev.name.to_s}d: #{ev.target_object.text}"
|
||||||
|
fire(ev.name, ev.source, ev.target_object)
|
||||||
|
when :user_update
|
||||||
|
update_user_object ev.source
|
||||||
|
end
|
||||||
|
when Twitter::Streaming::DeletedTweet
|
||||||
|
# Pass
|
||||||
else
|
else
|
||||||
log ev
|
log ev
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue