X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Fremind.rb;h=804e3f0bfd8968003182852d7b8b2f9b8727e6db;hb=783ffa4235330029d661752b1023db635b26f2b3;hp=ef9d4be75525b9eecafc9a675519b03bbacec9e1;hpb=10880d600dd3ae7acf3144ef1ab0c9bd329492e2;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/remind.rb b/data/rbot/plugins/remind.rb index ef9d4be7..804e3f0b 100644 --- a/data/rbot/plugins/remind.rb +++ b/data/rbot/plugins/remind.rb @@ -1,5 +1,3 @@ -require 'rbot/utils' - class RemindPlugin < Plugin # read a time in string format, turn it into "seconds from now". # example formats handled are "5 minutes", "2 days", "five hours", @@ -60,18 +58,19 @@ class RemindPlugin < Plugin else raise "invalid time string" end - when (/^(\d+):(\d+):(\d+)$/) + when (/^(\d+):(\d+)(?:\:(\d+))?$/) hour = $1.to_i min = $2.to_i sec = $3.to_i now = Time.now later = Time.mktime(now.year, now.month, now.day, hour, min, sec) - return later - now - when (/^(\d+):(\d+)$/) - hour = $1.to_i - min = $2.to_i - now = Time.now - later = Time.mktime(now.year, now.month, now.day, hour, min, now.sec) + + # if the given hour is earlier than current hour, given timestr + # must have been meant to be in the future + if hour < now.hour || hour <= now.hour && min < now.min + later += 60*60*24 + end + return later - now when (/^(\d+):(\d+)(am|pm)$/) hour = $1.to_i @@ -114,6 +113,7 @@ class RemindPlugin < Plugin } } @reminders.clear + super end def help(plugin, topic="") "reminder plugin: remind [about] in