aboutsummaryrefslogtreecommitdiff
path: root/dinobot.rb
diff options
context:
space:
mode:
authorDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2014-04-14 16:24:40 -0700
committerDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2014-04-14 16:24:40 -0700
commit81344c57f7ccba7bc1e4ef25c24f9ad832c64372 (patch)
treea3067627efaf74987f30f732e9807c9d19e4bf1e /dinobot.rb
parent0fee37a63b588d84b4d91e5ad5074ffb71f698a4 (diff)
downloaddinobot-81344c57f7ccba7bc1e4ef25c24f9ad832c64372.tar.gz
dinobot-81344c57f7ccba7bc1e4ef25c24f9ad832c64372.tar.xz
Allow piping of commands (needs cleanup).
Diffstat (limited to 'dinobot.rb')
-rw-r--r--dinobot.rb30
1 files changed, 25 insertions, 5 deletions
diff --git a/dinobot.rb b/dinobot.rb
index 68c901a..03f6291 100644
--- a/dinobot.rb
+++ b/dinobot.rb
@@ -70,13 +70,33 @@ module Dinobot
message.sub!(@trigger, '')
- mod = message.split.first.downcase.intern
-
- if @modules.has_key?(mod)
- commands = @modules[mod].call(user, channel, message)
+ commands = nil
+ mt = message.split(' | ')
+
+ mt.each_with_index do |m, i|
+ mod = m.split.first.downcase.intern
+ next unless @modules.has_key?(mod)
+
+ if i.zero?
+ commands = @modules[mod].call(user, channel, m)
+ else
+ return unless commands.is_a?(Array)
+
+ nc = []
+
+ commands.each do |cmd|
+ if cmd.first == :say
+ nc.concat(@modules[mod].call(user, cmd[1], "#{m} #{cmd[2]}"))
+ else
+ nc << cmd
+ end
+ end
- exec_commands(commands) unless commands.nil?
+ commands = nc
+ end
end
+
+ exec_commands(commands) if commands.is_a?(Array)
end
end