require 'cinch'
class Seen
class SeenStruct < Struct.new(:who, :where, :what, :time)
def to_s
"[#{time.asctime}] #{who} was seen in #{where} saying #{what}"
end
end
include Cinch::Plugin
listen_to :channel
match /seen (.+)/
def initialize(*args)
super
@users = {}
end
def listen(m)
@users[m.user.nick] = SeenStruct.new(m.user, m.channel, m.message, Time.now)
end
def execute(m, nick)
if nick == @bot.nick
m.reply "That's me!"
elsif nick == m.user.nick
m.reply "That's you!"
elsif @users.key?(nick)
m.reply @users[nick].to_s
else
m.reply "I haven't seen #{nick}"
end
end
end
bot = Cinch::Bot.new do
configure do |c|
c.server = 'irc.freenode.org'
c.channels = ["#cinch-bots"]
c.plugins.plugins = [Seen]
end
end
bot.start