64 lines
2.0 KiB
Ruby
64 lines
2.0 KiB
Ruby
![]() |
require 'cinch'
|
||
|
require_relative '../classes/Util.rb'
|
||
|
class Reminder
|
||
|
include Cinch::Plugin
|
||
|
include Util::PluginHelper
|
||
|
@clist = %w{remind-me list-reminders rm-reminder}
|
||
|
@@commands["remind-me"] = ":remind-me <reminder> - store <reminder>"
|
||
|
@@commands["list-reminders"] = ":list-reminders - view reminders"
|
||
|
@@commands["rm-reminder"] = ":rm-reminder /<regex>/<global> - removes one reminder that matches <regex> (case sensitive) (put g at the end to remove all that match)"
|
||
|
set :prefix, /^:/
|
||
|
match /remind-me (.+)?/, method: :remind
|
||
|
match /list-reminders/, method: :list
|
||
|
match /rm-reminder \/(.+)\/(g)?/, method: :remove
|
||
|
|
||
|
def remind (m, reminder)
|
||
|
db = Util::Util.instance.getCollection("extendobot","reminders")
|
||
|
v = db.insert_one({"user" => m.user.name, "server" => Util::Util.instance.hton(m.bot.config.server), "timestamp" => Time.now.to_i, "content" => reminder})
|
||
|
if(v)
|
||
|
str = m.user.name + ' ' + Util::Util.instance.getSuccess()
|
||
|
else
|
||
|
str = "sTORAGE fiLAure " + Util::Util.instance.getExcuse()
|
||
|
end
|
||
|
m.reply str
|
||
|
end
|
||
|
|
||
|
def list (m)
|
||
|
db = Util::Util.instance.getCollection("extendobot","reminders")
|
||
|
rs = db.find({"user" => m.user.name, "server" => Util::Util.instance.hton(m.bot.config.server)})
|
||
|
if(rs.count > 0)
|
||
|
rs.each { |res|
|
||
|
m.reply(res[:timestamp].to_s << ": " << res[:content])
|
||
|
}
|
||
|
else
|
||
|
m.reply "ain't got shyt nigguh"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def remove (m, regex, global=nil)
|
||
|
db = Util::Util.instance.getCollection("extendobot","reminders")
|
||
|
out = []
|
||
|
puts "global: #{global}"
|
||
|
res = db.find({"content" => /#{regex}/, "user" => m.user.name, "server" => Util::Util.instance.hton(m.bot.config.server)})
|
||
|
if(global == nil)
|
||
|
res.limit(1)
|
||
|
content = res.to_a[0][:content]
|
||
|
out.push "reminder deleted: #{content}"
|
||
|
else
|
||
|
res.each { |row|
|
||
|
out.push "reminder deleted: " + row[:content]
|
||
|
}
|
||
|
end
|
||
|
rs = 0
|
||
|
if(global == nil)
|
||
|
rs = res.delete_one
|
||
|
else
|
||
|
rs = res.delete_many
|
||
|
end
|
||
|
if(rs) then out.each { |msg| m.reply msg } end
|
||
|
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|