Make event handlers optional to define

Check if event handlers have been defined before attempting to call them.
This prevents the bot from crashing in the case that an event handler
hasn't been defined.
This commit is contained in:
Michael Henriksen 2013-11-29 16:58:12 +01:00
parent f6b5ee4390
commit 8402bbdc80

View file

@ -70,13 +70,13 @@ module Ebooks
@stream.on_event(:follow) do |event|
next if event[:source][:screen_name] == @username
log "Followed by #{event[:source][:screen_name]}"
@on_follow.call(event[:source])
@on_follow.call(event[:source]) if @on_follow
end
@stream.on_direct_message do |dm|
next if dm[:sender][:screen_name] == @username # Don't reply to self
log "DM from @#{dm[:sender][:screen_name]}: #{dm[:text]}"
@on_message.call(dm)
@on_message.call(dm) if @on_message
end
@stream.userstream do |ev|
@ -110,9 +110,9 @@ module Ebooks
# - Or soft-retweeted by somebody else
if mentions.map(&:downcase).include?(@username.downcase) && !ev[:retweeted_status] && !ev[:text].start_with?('RT ')
log "Mention from @#{ev[:user][:screen_name]}: #{ev[:text]}"
@on_mention.call(ev, meta)
@on_mention.call(ev, meta) if @on_mention
else
@on_timeline.call(ev, meta)
@on_timeline.call(ev, meta) if @on_timeline
end
end
end