local me = {}
local utilities = require('otouto.utilities')
function me:init(config)
me.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('me', true).table
me.command = 'me'
me.doc = 'Returns userdata stored by the bot.'
end
function me:action(msg, config)
local user
if msg.from.id == config.admin then
if msg.reply_to_message then
user = msg.reply_to_message.from
else
local input = utilities.input(msg.text)
if input then
if tonumber(input) then
user = self.database.users[input]
if not user then
utilities.send_reply(self, msg, 'Unrecognized ID.')
return
end
elseif input:match('^@') then
user = utilities.resolve_username(self, input)
if not user then
utilities.send_reply(self, msg, 'Unrecognized username.')
return
end
else
utilities.send_reply(self, msg, 'Invalid username or ID.')
return
end
end
end
end
user = user or msg.from
local userdata = self.database.userdata[tostring(user.id)] or {}
local data = {}
for k,v in pairs(userdata) do
table.insert(data, string.format(
'%s: %s
\n',
utilities.html_escape(k),
utilities.html_escape(v)
))
end
local output
if #data == 0 then
output = 'There is no data stored for this user.'
else
output = string.format(
'%s [%s]
:\n',
utilities.html_escape(utilities.build_name(
user.first_name,
user.last_name
)),
user.id
) .. table.concat(data)
end
utilities.send_message(self, msg.chat.id, output, true, nil, 'html')
end
return me