33 lines
991 B
Lua
33 lines
991 B
Lua
local utilities = require('otouto.utilities')
|
|
|
|
local greetings = {}
|
|
|
|
function greetings:init(config)
|
|
greetings.triggers = {}
|
|
for _, triggers in pairs(config.greetings) do
|
|
for i = 1, #triggers do
|
|
triggers[i] = '^' .. triggers[i] .. ',? ' .. self.info.first_name:lower() .. '%p*$'
|
|
table.insert(greetings.triggers, triggers[i])
|
|
end
|
|
end
|
|
end
|
|
|
|
function greetings:action(msg, config)
|
|
local nick
|
|
if self.database.userdata[tostring(msg.from.id)] then
|
|
nick = self.database.userdata[tostring(msg.from.id)].nickname
|
|
end
|
|
nick = nick or utilities.build_name(msg.from.first_name, msg.from.last_name)
|
|
|
|
for response, triggers in pairs(config.greetings) do
|
|
for _, trigger in pairs(triggers) do
|
|
if string.match(msg.text_lower, trigger) then
|
|
utilities.send_message(self, msg.chat.id, response:gsub('#NAME', nick))
|
|
return
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
return greetings
|