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/setandget.lua

75 lines
2.2 KiB
Lua
Raw Normal View History

local setandget = {}
2016-03-15 21:37:19 +01:00
local bindings = require('bindings')
local utilities = require('utilities')
function setandget:init()
self.database.setandget = self.database.setandget or {}
setandget.triggers = utilities.triggers(self.info.username):t('set', true):t('get', true).table
end
setandget.command = 'set <name> <value>'
setandget.doc = [[```
2016-03-15 21:37:19 +01:00
/set <name> <value>
Stores a value with the given name. Use "/set <name> --" to delete the stored value.
/get [name]
Returns the stored value or a list of stored values.
```]]
function setandget:action(msg)
2016-03-15 21:37:19 +01:00
local input = utilities.input(msg.text)
self.database.setandget[msg.chat.id_str] = self.database.setandget[msg.chat.id_str] or {}
2016-03-15 21:37:19 +01:00
if msg.text_lower:match('^/set') then
if not input then
bindings.sendMessage(self, msg.chat.id, setandget.doc, true, nil, true)
2016-03-15 21:37:19 +01:00
return
end
local name = utilities.get_word(input:lower(), 1)
local value = utilities.input(input)
2016-03-15 21:37:19 +01:00
if not name or not value then
bindings.sendMessage(self, msg.chat.id, setandget.doc, true, nil, true)
2016-03-15 21:37:19 +01:00
elseif value == '--' or value == '' then
self.database.setandget[msg.chat.id_str][name] = nil
bindings.sendMessage(self, msg.chat.id, 'That value has been deleted.')
2016-03-15 21:37:19 +01:00
else
self.database.setandget[msg.chat.id_str][name] = value
bindings.sendMessage(self, msg.chat.id, '"' .. name .. '" has been set to "' .. value .. '".', true)
2016-03-15 21:37:19 +01:00
end
elseif msg.text_lower:match('^/get') then
if not input then
local output
if utilities.table_size(self.database.setandget[msg.chat.id_str]) == 0 then
2016-03-15 21:37:19 +01:00
output = 'No values have been stored here.'
else
output = '*List of stored values:*\n'
for k,v in pairs(self.database.setandget[msg.chat.id_str]) do
2016-03-15 21:37:19 +01:00
output = output .. '' .. k .. ': `' .. v .. '`\n'
end
end
bindings.sendMessage(self, msg.chat.id, output, true, nil, true)
2016-03-15 21:37:19 +01:00
return
end
local output
if self.database.setandget[msg.chat.id_str][input:lower()] then
output = '`' .. self.database.setandget[msg.chat.id_str][input:lower()] .. '`'
2016-03-15 21:37:19 +01:00
else
output = 'There is no value stored by that name.'
end
bindings.sendMessage(self, msg.chat.id, output, true, nil, true)
2016-03-15 21:37:19 +01:00
end
end
return setandget