diff options
Diffstat (limited to 'lib/rbot/plugins/remind.rb')
-rw-r--r-- | lib/rbot/plugins/remind.rb | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/lib/rbot/plugins/remind.rb b/lib/rbot/plugins/remind.rb deleted file mode 100644 index 5ad980ae..00000000 --- a/lib/rbot/plugins/remind.rb +++ /dev/null @@ -1,154 +0,0 @@ -require 'rbot/utils' - -class RemindPlugin < Plugin - def initialize - super - @reminders = Hash.new - end - def cleanup - @reminders.each_value {|v| - v.each_value {|vv| - @bot.timer.remove(vv) - } - } - @reminders.clear - end - def help(plugin, topic="") - if(plugin =~ /^remind\+$/) - "see remind. remind+ can be used to remind someone else of something, using <nick> instead of 'me'. However this will generally require a higher auth level than remind." - else - "remind me [about] <message> in <time>, remind me [about] <message> every <time>, remind me [about] <message> at <time>, remind me no more [about] <message>, remind me no more" - end - end - def add_reminder(who, subject, timestr, repeat=false) - begin - period = Irc::Utils.timestr_offset(timestr) - rescue RuntimeError - return "couldn't parse that time string (#{timestr}) :(" - end - if(period <= 0) - return "that time is in the past! (#{timestr})" - end - if(period < 30 && repeat) - return "repeats of less than 30 seconds are forbidden" - end - if(!@reminders.has_key?(who)) - @reminders[who] = Hash.new - elsif(@reminders[who].has_key?(subject)) - del_reminder(who, subject) - end - - if(repeat) - @reminders[who][subject] = @bot.timer.add(period) { - time = Time.now + period - tstr = time.strftime("%H:%M:%S") - @bot.say who, "repeat reminder (next at #{tstr}): #{subject}" - } - else - @reminders[who][subject] = @bot.timer.add_once(period) { - time = Time.now + period - tstr = time.strftime("%H:%M:%S") - @bot.say who, "reminder (#{tstr}): #{subject}" - } - end - return false - end - def del_reminder(who, subject=nil) - if(subject) - if(@reminders.has_key?(who) && @reminders[who].has_key?(subject)) - @bot.timer.remove(@reminders[who][subject]) - @reminders[who].delete(subject) - end - else - if(@reminders.has_key?(who)) - @reminders[who].each_value {|v| - @bot.timer.remove(v) - } - @reminders.delete(who) - end - end - end - def privmsg(m) - - if(m.params =~ /^(\S+)\s+(?:about\s+)?(.*)\s+in\s+(.*)$/) - who = $1 - subject = $2 - period = $3 - if(who =~ /^me$/) - who = m.sourcenick - else - unless(m.plugin =~ /^remind\+$/) - m.reply "incorrect usage: use remind+ to remind persons other than yourself" - return - end - end - if(err = add_reminder(who, subject, period)) - m.reply "incorrect usage: " + err - return - end - elsif(m.params =~ /^(\S+)\s+(?:about\s+)?(.*)\s+every\s+(.*)$/) - who = $1 - subject = $2 - period = $3 - if(who =~ /^me$/) - who = m.sourcenick - else - unless(m.plugin =~ /^remind\+$/) - m.reply "incorrect usage: use remind+ to remind persons other than yourself" - return - end - end - if(err = add_reminder(who, subject, period, true)) - m.reply "incorrect usage: " + err - return - end - elsif(m.params =~ /^(\S+)\s+(?:about\s+)?(.*)\s+at\s+(.*)$/) - who = $1 - subject = $2 - time = $3 - if(who =~ /^me$/) - who = m.sourcenick - else - unless(m.plugin =~ /^remind\+$/) - m.reply "incorrect usage: use remind+ to remind persons other than yourself" - return - end - end - if(err = add_reminder(who, subject, time)) - m.reply "incorrect usage: " + err - return - end - elsif(m.params =~ /^(\S+)\s+no\s+more\s+(?:about\s+)?(.*)$/) - who = $1 - subject = $2 - if(who =~ /^me$/) - who = m.sourcenick - else - unless(m.plugin =~ /^remind\+$/) - m.reply "incorrect usage: use remind+ to remind persons other than yourself" - return - end - end - del_reminder(who, subject) - elsif(m.params =~ /^(\S+)\s+no\s+more$/) - who = $1 - if(who =~ /^me$/) - who = m.sourcenick - else - unless(m.plugin =~ /^remind\+$/) - m.reply "incorrect usage: use remind+ to remind persons other than yourself" - return - end - end - del_reminder(who) - else - m.reply "incorrect usage: " + help(m.plugin) - return - end - m.okay - end -end -plugin = RemindPlugin.new -plugin.register("remind") -plugin.register("remind+") - |