summaryrefslogtreecommitdiff
path: root/data/rbot/plugins/seen.rb
diff options
context:
space:
mode:
Diffstat (limited to 'data/rbot/plugins/seen.rb')
-rw-r--r--data/rbot/plugins/seen.rb21
1 files changed, 19 insertions, 2 deletions
diff --git a/data/rbot/plugins/seen.rb b/data/rbot/plugins/seen.rb
index 6bd86a70..80d52f65 100644
--- a/data/rbot/plugins/seen.rb
+++ b/data/rbot/plugins/seen.rb
@@ -1,6 +1,23 @@
Saw = Struct.new("Saw", :nick, :time, :type, :where, :message)
class SeenPlugin < Plugin
+ # turn a number of seconds into a human readable string, e.g
+ # 2 days, 3 hours, 18 minutes, 10 seconds
+ def secs_to_string(secs)
+ ret = ""
+ days = (secs / (60 * 60 * 24)).to_i
+ secs = secs % (60 * 60 * 24)
+ hours = (secs / (60 * 60)).to_i
+ secs = (secs % (60 * 60))
+ mins = (secs / 60).to_i
+ secs = (secs % 60).to_i
+ ret += "#{days} days, " if days > 0
+ ret += "#{hours} hours, " if hours > 0 || days > 0
+ ret += "#{mins} minutes and " if mins > 0 || hours > 0 || days > 0
+ ret += "#{secs} seconds"
+ return ret
+ end
+
def help(plugin, topic="")
"seen <nick> => have you seen, or when did you last see <nick>"
end
@@ -23,7 +40,7 @@ class SeenPlugin < Plugin
def listen(m)
# keep database up to date with who last said what
if m.kind_of?(PrivMessage)
- return if m.private? || m.address?
+ return if m.private?
if m.action?
@registry[m.sourcenick] = Saw.new(m.sourcenick.dup, Time.new, "ACTION",
m.target, m.message.dup)
@@ -63,7 +80,7 @@ class SeenPlugin < Plugin
if (ago.to_i == 0)
ret += "just now, "
else
- ret += Utils.secs_to_string(ago) + " ago, "
+ ret += secs_to_string(ago) + " ago, "
end
case saw.type