# File rbot/plugins/quotes.rb, line 105 def listen(m) return unless(m.kind_of? PrivMessage) command = m.message.dup if(m.address? && m.private?) case command when (/^addquote\s+(#\S+)\s+(.*)/) channel = $1 quote = $2 if(@bot.auth.allow?("addquote", m.source, m.replyto)) if(channel =~ /^#/) num = addquote(m.source, channel, quote) m.reply "added the quote (##{num})" end end when (/^getquote\s+(#\S+)$/) channel = $1 if(@bot.auth.allow?("getquote", m.source, m.replyto)) quote, total = getquote(m.source, channel) if(quote) m.reply "[#{quote.num}] #{quote.quote}" else m.reply "quote not found!" end end when (/^getquote\s+(#\S+)\s+(\d+)$/) channel = $1 num = $2.to_i if(@bot.auth.allow?("getquote", m.source, m.replyto)) quote, total = getquote(m.source, channel, num) if(quote) m.reply "[#{quote.num}] #{quote.quote}" else m.reply "quote not found!" end end when (/^whoquote\s+(#\S+)\s+(\d+)$/) channel = $1 num = $2.to_i if(@bot.auth.allow?("getquote", m.source, m.replyto)) quote, total = getquote(m.source, channel, num) if(quote) m.reply "quote #{quote.num} added by #{quote.source}" else m.reply "quote not found!" end end when (/^whenquote\s+(#\S+)\s+(\d+)$/) channel = $1 num = $2.to_i if(@bot.auth.allow?("getquote", m.source, m.replyto)) quote, total = getquote(m.source, channel, num) if(quote) m.reply "quote #{quote.num} added on #{quote.date}" else m.reply "quote not found!" end end when (/^topicquote\s+(#\S+)$/) channel = $1 if(@bot.auth.allow?("topicquote", m.source, m.replyto)) quote, total = getquote(m.source, channel) if(quote) @bot.topic channel, "[#{quote.num}] #{quote.quote}" else m.reply "quote not found!" end end when (/^topicquote\s+(#\S+)\s+(\d+)$/) channel = $1 num = $2.to_i if(@bot.auth.allow?("topicquote", m.source, m.replyto)) quote, total = getquote(m.source, channel, num) if(quote) @bot.topic channel, "[#{quote.num}] #{quote.quote}" else m.reply "quote not found!" end end when (/^delquote\s+(#\S+)\s+(\d+)$/) channel = $1 num = $2.to_i if(@bot.auth.allow?("delquote", m.source, m.replyto)) if(delquote(channel, num)) @bot.okay m.replyto else m.reply "quote not found!" end end when (/^searchquote\s+(#\S+)\s+(.*)$/) channel = $1 reg = $2 if(@bot.auth.allow?("getquote", m.source, m.replyto)) quote, total = searchquote(m.source, channel, reg) if(quote) m.reply "[#{quote.num}] #{quote.quote}" else m.reply "quote not found!" end end when (/^countquote$/) if(@bot.auth.allow?("getquote", m.source, m.replyto)) total = countquote(m.source) m.reply "#{total} quotes" end when (/^countquote\s+(#\S+)\s*(.*)$/) channel = $1 reg = $2 if(@bot.auth.allow?("getquote", m.source, m.replyto)) total = countquote(m.source, channel, reg) if(reg.length > 0) m.reply "#{total} quotes match: #{reg}" else m.reply "#{total} quotes" end end end elsif (m.address? || (@bot.config["QUOTE_LISTEN"] && command.gsub!(/^!/, ""))) case command when (/^addquote\s+(.+)/) if(@bot.auth.allow?("addquote", m.source, m.replyto)) num = addquote(m.source, m.target, $1) m.reply "added the quote (##{num})" end when (/^getquote$/) if(@bot.auth.allow?("getquote", m.source, m.replyto)) quote, total = getquote(m.source, m.target) if(quote) m.reply "[#{quote.num}] #{quote.quote}" else m.reply "no quotes found!" end end when (/^getquote\s+(\d+)$/) num = $1.to_i if(@bot.auth.allow?("getquote", m.source, m.replyto)) quote, total = getquote(m.source, m.target, num) if(quote) m.reply "[#{quote.num}] #{quote.quote}" else m.reply "quote not found!" end end when (/^whenquote\s+(\d+)$/) num = $1.to_i if(@bot.auth.allow?("getquote", m.source, m.replyto)) quote, total = getquote(m.source, m.target, num) if(quote) m.reply "quote #{quote.num} added on #{quote.date}" else m.reply "quote not found!" end end when (/^whoquote\s+(\d+)$/) num = $1.to_i if(@bot.auth.allow?("getquote", m.source, m.replyto)) quote, total = getquote(m.source, m.target, num) if(quote) m.reply "quote #{quote.num} added by #{quote.source}" else m.reply "quote not found!" end end when (/^topicquote$/) if(@bot.auth.allow?("topicquote", m.source, m.replyto)) quote, total = getquote(m.source, m.target) if(quote) @bot.topic m.target, "[#{quote.num}] #{quote.quote}" else m.reply "no quotes found!" end end when (/^topicquote\s+(\d+)$/) num = $1.to_i if(@bot.auth.allow?("topicquote", m.source, m.replyto)) quote, total = getquote(m.source, m.target, num) if(quote) @bot.topic m.target, "[#{quote.num}] #{quote.quote}" else m.reply "quote not found!" end end when (/^delquote\s+(\d+)$/) num = $1.to_i if(@bot.auth.allow?("delquote", m.source, m.replyto)) if(delquote(m.target, num)) @bot.okay m.replyto else m.reply "quote not found!" end end when (/^searchquote\s+(.*)$/) reg = $1 if(@bot.auth.allow?("getquote", m.source, m.replyto)) quote, total = searchquote(m.source, m.target, reg) if(quote) m.reply "[#{quote.num}] #{quote.quote}" else m.reply "quote not found!" end end when (/^countquote(?:\s+(.*))?$/) reg = $1 if(@bot.auth.allow?("getquote", m.source, m.replyto)) total = countquote(m.source, m.target, reg) if(reg && reg.length > 0) m.reply "#{total} quotes match: #{reg}" else m.reply "#{total} quotes" end end end end end