diff options
author | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2014-04-14 16:24:40 -0700 |
---|---|---|
committer | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2014-04-14 16:24:40 -0700 |
commit | 81344c57f7ccba7bc1e4ef25c24f9ad832c64372 (patch) | |
tree | a3067627efaf74987f30f732e9807c9d19e4bf1e /dinobot.rb | |
parent | 0fee37a63b588d84b4d91e5ad5074ffb71f698a4 (diff) | |
download | dinobot-81344c57f7ccba7bc1e4ef25c24f9ad832c64372.tar.gz dinobot-81344c57f7ccba7bc1e4ef25c24f9ad832c64372.tar.xz |
Allow piping of commands (needs cleanup).
Diffstat (limited to 'dinobot.rb')
-rw-r--r-- | dinobot.rb | 30 |
1 files changed, 25 insertions, 5 deletions
@@ -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 |