summaryrefslogtreecommitdiff
path: root/lib/rbot/plugins/seen.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbot/plugins/seen.rb')
-rw-r--r--lib/rbot/plugins/seen.rb89
1 files changed, 0 insertions, 89 deletions
diff --git a/lib/rbot/plugins/seen.rb b/lib/rbot/plugins/seen.rb
deleted file mode 100644
index 6bd86a70..00000000
--- a/lib/rbot/plugins/seen.rb
+++ /dev/null
@@ -1,89 +0,0 @@
-Saw = Struct.new("Saw", :nick, :time, :type, :where, :message)
-
-class SeenPlugin < Plugin
- def help(plugin, topic="")
- "seen <nick> => have you seen, or when did you last see <nick>"
- end
-
- def privmsg(m)
- unless(m.params =~ /^(\S)+$/)
- m.reply "incorrect usage: " + help(m.plugin)
- return
- end
-
- m.params.gsub!(/\?$/, "")
-
- if @registry.has_key?(m.params)
- m.reply seen(@registry[m.params])
- else
- m.reply "nope!"
- end
- end
-
- def listen(m)
- # keep database up to date with who last said what
- if m.kind_of?(PrivMessage)
- return if m.private? || m.address?
- if m.action?
- @registry[m.sourcenick] = Saw.new(m.sourcenick.dup, Time.new, "ACTION",
- m.target, m.message.dup)
- else
- @registry[m.sourcenick] = Saw.new(m.sourcenick.dup, Time.new, "PUBLIC",
- m.target, m.message.dup)
- end
- elsif m.kind_of?(QuitMessage)
- return if m.address?
- @registry[m.sourcenick] = Saw.new(m.sourcenick.dup, Time.new, "QUIT",
- nil, m.message.dup)
- elsif m.kind_of?(NickMessage)
- return if m.address?
- @registry[m.message] = Saw.new(m.sourcenick.dup, Time.new, "NICK",
- nil, m.message.dup)
- @registry[m.sourcenick] = Saw.new(m.sourcenick.dup, Time.new, "NICK",
- nil, m.message.dup)
- elsif m.kind_of?(PartMessage)
- return if m.address?
- @registry[m.sourcenick] = Saw.new(m.sourcenick.dup, Time.new, "PART",
- m.target, m.message.dup)
- elsif m.kind_of?(JoinMessage)
- return if m.address?
- @registry[m.sourcenick] = Saw.new(m.sourcenick.dup, Time.new, "JOIN",
- m.target, m.message.dup)
- elsif m.kind_of?(TopicMessage)
- return if m.address?
- @registry[m.sourcenick] = Saw.new(m.sourcenick.dup, Time.new, "TOPIC",
- m.target, m.message.dup)
- end
- end
-
- def seen(saw)
- ret = "#{saw.nick} was last seen "
- ago = Time.new - saw.time
-
- if (ago.to_i == 0)
- ret += "just now, "
- else
- ret += Utils.secs_to_string(ago) + " ago, "
- end
-
- case saw.type
- when "PUBLIC"
- ret += "saying #{saw.message}"
- when "ACTION"
- ret += "doing #{saw.nick} #{saw.message}"
- when "NICK"
- ret += "changing nick from #{saw.nick} to #{saw.message}"
- when "PART"
- ret += "leaving #{saw.where}"
- when "JOIN"
- ret += "joining #{saw.where}"
- when "QUIT"
- ret += "quiting IRC (#{saw.message})"
- when "TOPIC"
- ret += "changing the topic of #{saw.where} to #{saw.message}"
- end
- end
-
-end
-plugin = SeenPlugin.new
-plugin.register("seen")