irc-formatter
用于格式化/序列化 IRC 行的库。
$ opm get jprjr/irc-formatter
lua-irc-formatter
一个用于 IRC 消息的简单格式化/序列化器。
它允许使用消息的默认值创建一个格式化器对象。然后,您可以序列化/格式化您的消息,并将其与默认值合并。
例如,假设您正在构建一个打算向同一个房间发送消息的机器人,您可以创建一个格式化器,其中预先填充了command
和params
值。
local formatter = require('irc-formatter').new({
command = 'PRIVMSG',
params = { '#some-room' },
})
然后,要发送消息,您可以使用您的附加参数(房间消息)调用:format
。
local str = formatter:format({
params = { 'Hello there!' },
})
--[[ str is:
PRIVMSG #some-room :Hello there!
]]
如果您提供了某种无效数据,默认情况下:format()
将抛出错误。您可以使用:validate()
事先检查这一点。
local formatter = require('irc-formatter').new({
command = 'PRIVMSG',
params = { '#some-room', 'param with spaces', 'another param with spaces' },
})
local ok, err = formatter:validate()
您也可以使用表调用:validate()
,并且合并的参数将被测试。
local formatter = require('irc-formatter').new({
command = 'PRIVMSG',
params = { '#some-room'},
})
local ok, err = formatter:validate({
params = { 'this has spaces', 'and so does this' },
})
默认情况下,如果您的最终参数不需要冒号,生成的字符串将不包含冒号。您可以选择始终包含冒号,方法是将真值作为第二个值传递。
local formatter = require('irc-formatter').new({
command = 'PRIVMSG',
params = { '#some-room' },
})
local str = formatter:serialize({
params = { 'hello' },
, true)
--[[ str is:
PRIVMSG #some-room :hello
]]
这也会正确地转义标签。还有一种专门的类型用于生成“缺失”标签(其中没有等号或值,只有标签名称)。
local formatter = require('irc-formatter').new()
local str = formatter:format({
tags = {
a = ':-) Hi there;\r\n\\s',
b = false,
c = formatter.missing,
d = 1234,
},
source = {
nick = 'nick',
user = 'user',
host = '127.0.0.1',
},
command = 'PRIVMSG',
params = { '#some-room', ':-)Hello there!' },
})
这将编码为
@a=:-)\sHi\sthere\:\r\n\\s;b=false;c;d=1234 :nick!user@127.0.0.1 PRIVMSG #some-room ::-)Hello there!
默认情况下,字符串在返回时不带换行符,这可以通过eol
参数设置。
参数的完整列表如下:
tags
- 一个标签表,值将使用tostring
转换为字符串。source
- 一个指示消息源的表,以前称为prefix
,它可以包含以下键:nick
user
host
command
- 唯一必需的参数,IRC 命令。params
- 一个类似数组的表参数。eol
- 换行符标记,例如\r\n
。
安装
luarocks
可在 luarocks 上获取。
luarocks install irc-formatter
OPM
可在 OPM 上获取。
opm install jprjr/irc-formatter
许可证
MIT(参见文件LICENSE
)
作者
John Regan
许可证
mit
版本
-
jprjr/irc-formatter 1.1.1用于格式化/序列化 IRC 行的库。 2022-04-08 19:13:29
-
jprjr/irc-formatter 1.1.0用于格式化/序列化 IRC 行的库。 2022-04-08 19:05:07
-
jprjr/irc-formatter 1.0.1用于格式化/序列化 IRC 行的库。 2022-04-08 18:52:10
-
jprjr/irc-formatter 1.0.0用于格式化/序列化 IRC 行的库。 2022-02-28 22:52:24