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/otouto/plugins/patterns.lua

42 lines
1.1 KiB
Lua
Raw Normal View History

2016-08-14 04:26:44 +02:00
local utilities = require('otouto.utilities')
local patterns = {}
2016-08-14 04:26:44 +02:00
patterns.command = 's/<pattern>/<substitution>'
patterns.help_word = 'sed'
patterns.doc = [[
s/<pattern>/<substitution>
Replace all matches for the given pattern.
Uses Lua patterns.
2016-08-14 04:46:18 +02:00
]]
2016-08-14 04:26:44 +02:00
function patterns:init(config)
2016-08-14 04:46:18 +02:00
patterns.triggers = { config.cmd_pat .. '?s/.-/.-$' }
2016-08-14 04:26:44 +02:00
end
2016-02-23 21:50:42 +01:00
function patterns:action(msg)
2016-08-14 04:46:18 +02:00
if not msg.reply_to_message then return true end
local output = msg.reply_to_message.text
if msg.reply_to_message.from.id == self.info.id then
output = output:gsub('Did you mean:\n"', '')
output = output:gsub('"$', '')
end
local m1, m2 = msg.text:match('^/?s/(.-)/(.-)/?$')
if not m2 then return true end
local res
res, output = pcall(
function()
return output:gsub(m1, m2)
end
)
if res == false then
utilities.send_reply(msg, 'Malformed pattern!')
2016-08-14 04:46:18 +02:00
else
output = utilities.trim(output:sub(1, 4000))
output = utilities.style.enquote('Did you mean', output)
utilities.send_reply(msg.reply_to_message, output, true)
2016-08-14 04:46:18 +02:00
end
2016-02-23 21:50:42 +01:00
end
return patterns