From 09e925d6956cd7431a3466d8b659a7207e029617 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 1 Jan 2013 19:03:27 +0100 Subject: Add Fortune module --- bot.rb | 4 ++-- module_base.rb | 3 ++- modules/Fortune.rb | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 modules/Fortune.rb diff --git a/bot.rb b/bot.rb index 80eb45e..6040029 100644 --- a/bot.rb +++ b/bot.rb @@ -17,9 +17,9 @@ module Lain $stderr.puts 'Loading modules...' - Config::Modules.each { |mod| + Config::Modules.each { |mod, cfg| require_relative "modules/#{mod}" - @modules[mod] = Modules.const_get(mod).new self + @modules[mod] = Modules.const_get(mod).new(self, cfg) } $stderr.puts 'Connecting...' diff --git a/module_base.rb b/module_base.rb index 500fd20..01d3f74 100644 --- a/module_base.rb +++ b/module_base.rb @@ -1,7 +1,8 @@ module Lain module Modules class Base - def initialize(lain) + def initialize(lain, config) + @config = config end def on_message(muc, message) diff --git a/modules/Fortune.rb b/modules/Fortune.rb new file mode 100644 index 0000000..2b9d63b --- /dev/null +++ b/modules/Fortune.rb @@ -0,0 +1,16 @@ +require 'xmpp4r/message' + +require_relative '../module_base' + +module Lain + module Modules + class Fortune < Base + def on_message(muc, message) + return unless message.type == :groupchat + return unless /!fortune\b/ =~ message.body + + muc.send(Jabber::Message.new(message.to, IO.popen(@config['command']).gets(sep=nil).chomp)) + end + end + end +end -- cgit v1.2.3