This repository has been archived on 2021-04-24. You can view files and clone it, but cannot push or open issues or pull requests.
Mikubot-2/plugins/remind.lua

71 lines
1.3 KiB
Lua
Raw Normal View History

reminders = {}
2015-07-03 00:15:52 +02:00
local doc = [[
2015-07-08 09:38:04 +02:00
/remind <delay> <message>
2015-07-03 00:15:52 +02:00
Set a reminder for yourself. First argument is the number of minutes until you wish to be reminded.
]]
local triggers = {
'^/remind'
2015-07-03 00:15:52 +02:00
}
local action = function(msg)
2015-07-03 00:15:52 +02:00
local input = get_input(msg.text)
if not input then
return send_msg(msg, doc)
2015-07-03 00:15:52 +02:00
end
local delay = first_word(input)
if not tonumber(delay) then
return send_msg(msg, 'The delay must be a number.')
end
if string.len(msg.text) <= string.len(delay) + 9 then
return send_msg(msg, 'Please include a reminder.')
end
local text = string.sub(msg.text, string.len(delay)+10)
2015-07-03 00:15:52 +02:00
if msg.from.username then
text = text .. '\n@' .. msg.from.username
end
local delay = tonumber(delay)
local rem = {
2015-07-03 00:15:52 +02:00
alarm = os.time() + (delay * 60),
chat_id = msg.chat.id,
text = text
}
table.insert(reminders, rem)
2015-07-03 00:15:52 +02:00
if delay <= 1 then
delay = (delay * 60) .. ' seconds'
else
delay = delay .. ' minutes'
end
local message = 'Your reminder has been set for ' .. delay .. ' from now:\n' .. text
send_msg(msg, message)
end
local cron = function()
for i,v in ipairs(reminders) do
if os.time() > v.alarm then
send_message(v.chat_id, text)
table.remove(reminders, i)
end
end
end
return {
doc = doc,
triggers = triggers,
action = action,
cron = cron
}