Moved utilities.CMD_PAT to config.cmd_pat.
This commit is contained in:
@ -19,9 +19,9 @@ function about:action(msg, config)
|
||||
local output = config.about_text .. '\nBased on otouto v'..bot.version..' by topkecleon.'
|
||||
|
||||
if (msg.new_chat_participant and msg.new_chat_participant.id == self.info.id)
|
||||
or msg.text_lower:match('^'..utilities.CMD_PAT..'about')
|
||||
or msg.text_lower:match('^'..utilities.CMD_PAT..'about@'..self.info.username:lower())
|
||||
or msg.text_lower:match('^'..utilities.CMD_PAT..'start') then
|
||||
or msg.text_lower:match('^'..config.cmd_pat..'about')
|
||||
or msg.text_lower:match('^'..config.cmd_pat..'about@'..self.info.username:lower())
|
||||
or msg.text_lower:match('^'..config.cmd_pat..'start') then
|
||||
utilities.send_message(self, msg.chat.id, output, true)
|
||||
return
|
||||
end
|
||||
|
@ -66,17 +66,20 @@ function administration:init(config)
|
||||
|
||||
drua.PORT = config.cli_port or 4567
|
||||
|
||||
administration.init_flags(config.cmd_pat)
|
||||
administration.init_command(self, config)
|
||||
|
||||
administration.doc = '`Returns a list of administrated groups.\nUse '..config.cmd_pat..'ahelp for more administrative commands.`'
|
||||
|
||||
end
|
||||
|
||||
administration.flags = {
|
||||
function administration.init_flags(cmd_pat) return {
|
||||
[1] = {
|
||||
name = 'unlisted',
|
||||
desc = 'Removes this group from the group listing.',
|
||||
short = 'This group is unlisted.',
|
||||
enabled = 'This group is no longer listed in '..utilities.CMD_PAT..'groups.',
|
||||
disabled = 'This group is now listed in '..utilities.CMD_PAT..'groups.'
|
||||
enabled = 'This group is no longer listed in '..cmd_pat..'groups.',
|
||||
disabled = 'This group is now listed in '..cmd_pat..'groups.'
|
||||
},
|
||||
[2] = {
|
||||
name = 'antisquig',
|
||||
@ -105,7 +108,7 @@ administration.flags = {
|
||||
name = 'antiflood',
|
||||
desc = 'Prevents flooding by rate-limiting messages per user.',
|
||||
short = 'This group automatically removes users who flood.',
|
||||
enabled = 'Users will now be removed automatically for excessive messages. Use '..utilities.CMD_PAT..'antiflood to configure limits.',
|
||||
enabled = 'Users will now be removed automatically for excessive messages. Use '..cmd_pat..'antiflood to configure limits.',
|
||||
disabled = 'Users will no longer be removed automatically for excessive messages.',
|
||||
kicked = 'You were automatically kicked from GROUPNAME for flooding.'
|
||||
},
|
||||
@ -116,7 +119,7 @@ administration.flags = {
|
||||
enabled = 'This group will no longer remove users for being globally banned.',
|
||||
disabled = 'This group will now remove users for being globally banned.'
|
||||
}
|
||||
}
|
||||
} end
|
||||
|
||||
administration.antiflood = {
|
||||
text = 10,
|
||||
@ -197,7 +200,7 @@ function administration:mod_format(id)
|
||||
return output
|
||||
end
|
||||
|
||||
function administration:get_desc(chat_id)
|
||||
function administration:get_desc(chat_id, config)
|
||||
|
||||
local group = self.database.administration.groups[tostring(chat_id)]
|
||||
local t = {}
|
||||
@ -237,12 +240,12 @@ function administration:get_desc(chat_id)
|
||||
if modstring ~= '' then
|
||||
table.insert(t, '*Moderators:*\n' .. utilities.trim(modstring))
|
||||
end
|
||||
table.insert(t, 'Run '..utilities.CMD_PAT..'ahelp@' .. self.info.username .. ' for a list of commands.')
|
||||
table.insert(t, 'Run '..config..'ahelp@' .. self.info.username .. ' for a list of commands.')
|
||||
return table.concat(t, '\n\n')
|
||||
|
||||
end
|
||||
|
||||
function administration:update_desc(chat)
|
||||
function administration:update_desc(chat, config)
|
||||
local group = self.database.administration.groups[tostring(chat)]
|
||||
local desc = 'Welcome to ' .. group.name .. '!\n'
|
||||
if group.motd then desc = desc .. group.motd .. '\n' end
|
||||
@ -250,7 +253,7 @@ function administration:update_desc(chat)
|
||||
local gov = self.database.users[tostring(group.governor)]
|
||||
desc = desc .. '\nGovernor: ' .. utilities.build_name(gov.first_name, gov.last_name) .. ' [' .. gov.id .. ']\n'
|
||||
end
|
||||
local s = '\n'..utilities.CMD_PAT..'desc@' .. self.info.username .. ' for more information.'
|
||||
local s = '\n'..config.cmd_pat..'desc@' .. self.info.username .. ' for more information.'
|
||||
desc = desc:sub(1, 250-s:len()) .. s
|
||||
drua.channel_set_about(chat, desc)
|
||||
end
|
||||
@ -400,7 +403,7 @@ function administration.init_command(self_, config)
|
||||
else
|
||||
group.name = msg.new_chat_title
|
||||
if group.grouptype == 'supergroup' then
|
||||
administration.update_desc(self, msg.chat.id)
|
||||
administration.update_desc(self, msg.chat.id, config)
|
||||
end
|
||||
end
|
||||
elseif msg.new_chat_photo then
|
||||
@ -461,7 +464,7 @@ function administration.init_command(self_, config)
|
||||
end
|
||||
|
||||
if msg.new_chat_participant and not new_user.do_kick then
|
||||
local output = administration.get_desc(self, msg.chat.id)
|
||||
local output = administration.get_desc(self, msg.chat.id, config)
|
||||
utilities.send_message(self, msg.new_chat_participant.id, output, true, nil, true)
|
||||
end
|
||||
|
||||
@ -481,7 +484,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /groups
|
||||
triggers = utilities.triggers(self_.info.username):t('groups').table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('groups').table,
|
||||
|
||||
command = 'groups',
|
||||
privilege = 1,
|
||||
@ -510,7 +513,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /ahelp
|
||||
triggers = utilities.triggers(self_.info.username):t('ahelp', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('ahelp', true).table,
|
||||
|
||||
command = 'ahelp \\[command]',
|
||||
privilege = 1,
|
||||
@ -521,11 +524,11 @@ function administration.init_command(self_, config)
|
||||
local rank = administration.get_rank(self, msg.from.id, msg.chat.id, config)
|
||||
local input = utilities.get_word(msg.text_lower, 2)
|
||||
if input then
|
||||
input = input:gsub('^'..utilities.CMD_PAT..'', '')
|
||||
input = input:gsub('^'..config.cmd_pat..'', '')
|
||||
local doc
|
||||
for _,action in ipairs(administration.commands) do
|
||||
if action.keyword == input then
|
||||
doc = ''..utilities.CMD_PAT..'' .. action.command:gsub('\\','') .. '\n' .. action.doc
|
||||
doc = ''..config.cmd_pat..'' .. action.command:gsub('\\','') .. '\n' .. action.doc
|
||||
break
|
||||
end
|
||||
end
|
||||
@ -533,14 +536,14 @@ function administration.init_command(self_, config)
|
||||
local output = '*Help for* _' .. input .. '_ :\n```\n' .. doc .. '\n```'
|
||||
utilities.send_message(self, msg.chat.id, output, true, nil, true)
|
||||
else
|
||||
local output = 'Sorry, there is no help for that command.\n'..utilities.CMD_PAT..'ahelp@'..self.info.username
|
||||
local output = 'Sorry, there is no help for that command.\n'..config.cmd_pat..'ahelp@'..self.info.username
|
||||
utilities.send_reply(self, msg, output)
|
||||
end
|
||||
else
|
||||
local output = '*Commands for ' .. administration.ranks[rank] .. ':*\n'
|
||||
for i = 1, rank do
|
||||
for _, val in ipairs(self.admin_temp.help[i]) do
|
||||
output = output .. '• ' .. utilities.CMD_PAT .. val .. '\n'
|
||||
output = output .. '• ' .. config.cmd_pat .. val .. '\n'
|
||||
end
|
||||
end
|
||||
output = output .. 'Arguments: <required> \\[optional]'
|
||||
@ -556,7 +559,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /ops
|
||||
triggers = utilities.triggers(self_.info.username):t('ops'):t('oplist').table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('ops'):t('oplist').table,
|
||||
|
||||
command = 'ops',
|
||||
privilege = 1,
|
||||
@ -586,7 +589,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /desc
|
||||
triggers = utilities.triggers(self_.info.username):t('desc'):t('description').table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('desc'):t('description').table,
|
||||
|
||||
command = 'description',
|
||||
privilege = 1,
|
||||
@ -594,7 +597,7 @@ function administration.init_command(self_, config)
|
||||
doc = 'Returns a description of the group (in a private message), including its motd, rules, flags, governor, and moderators.',
|
||||
|
||||
action = function(self, msg, group, config)
|
||||
local output = administration.get_desc(self, msg.chat.id)
|
||||
local output = administration.get_desc(self, msg.chat.id, config)
|
||||
if utilities.send_message(self, msg.from.id, output, true, nil, true) then
|
||||
if msg.from.id ~= msg.chat.id then
|
||||
utilities.send_reply(self, msg, 'I have sent you the requested information in a private message.')
|
||||
@ -606,7 +609,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /rules
|
||||
triggers = utilities.triggers(self_.info.username):t('rules?', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('rules?', true).table,
|
||||
|
||||
command = 'rules \\[i]',
|
||||
privilege = 1,
|
||||
@ -634,7 +637,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /motd
|
||||
triggers = utilities.triggers(self_.info.username):t('motd').table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('motd').table,
|
||||
|
||||
command = 'motd',
|
||||
privilege = 1,
|
||||
@ -651,7 +654,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /link
|
||||
triggers = utilities.triggers(self_.info.username):t('link').table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('link').table,
|
||||
|
||||
command = 'link',
|
||||
privilege = 1,
|
||||
@ -668,7 +671,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /kickme
|
||||
triggers = utilities.triggers(self_.info.username):t('leave'):t('kickme').table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('leave'):t('kickme').table,
|
||||
|
||||
command = 'kickme',
|
||||
privilege = 1,
|
||||
@ -689,7 +692,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /kick
|
||||
triggers = utilities.triggers(self_.info.username):t('kick', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('kick', true).table,
|
||||
|
||||
command = 'kick <user>',
|
||||
privilege = 2,
|
||||
@ -713,7 +716,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /ban
|
||||
triggers = utilities.triggers(self_.info.username):t('ban', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('ban', true).table,
|
||||
|
||||
command = 'ban <user>',
|
||||
privilege = 2,
|
||||
@ -737,7 +740,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /unban
|
||||
triggers = utilities.triggers(self_.info.username):t('unban', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('unban', true).table,
|
||||
|
||||
command = 'unban <user>',
|
||||
privilege = 2,
|
||||
@ -763,7 +766,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /setrules
|
||||
triggers = utilities.triggers(self_.info.username):t('setrules', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('setrules', true).table,
|
||||
|
||||
command = 'setrules <rules>',
|
||||
privilege = 3,
|
||||
@ -771,7 +774,7 @@ function administration.init_command(self_, config)
|
||||
doc = 'Sets the group\'s rules. Rules will be automatically numbered. Separate rules with a new line. Markdown is supported. Pass "--" to delete the rules.',
|
||||
|
||||
action = function(self, msg, group, config)
|
||||
local input = msg.text:match('^'..utilities.CMD_PAT..'setrules[@'..self.info.username..']*(.+)')
|
||||
local input = msg.text:match('^'..config.cmd_pat..'setrules[@'..self.info.username..']*(.+)')
|
||||
if input == ' --' or input == ' ' .. utilities.char.em_dash then
|
||||
group.rules = {}
|
||||
utilities.send_reply(self, msg, 'The rules have been cleared.')
|
||||
@ -793,7 +796,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /changerule
|
||||
triggers = utilities.triggers(self_.info.username):t('changerule', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('changerule', true).table,
|
||||
|
||||
command = 'changerule <i> <rule>',
|
||||
privilege = 3,
|
||||
@ -802,7 +805,7 @@ function administration.init_command(self_, config)
|
||||
|
||||
action = function(self, msg, group, config)
|
||||
local input = utilities.input(msg.text)
|
||||
local output = 'usage: `'..utilities.CMD_PAT..'changerule <i> <newrule>`'
|
||||
local output = 'usage: `'..config.cmd_pat..'changerule <i> <newrule>`'
|
||||
if input then
|
||||
local rule_num = tonumber(input:match('^%d+'))
|
||||
local new_rule = utilities.input(input)
|
||||
@ -830,7 +833,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /setmotd
|
||||
triggers = utilities.triggers(self_.info.username):t('setmotd', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('setmotd', true).table,
|
||||
|
||||
command = 'setmotd <motd>',
|
||||
privilege = 2,
|
||||
@ -853,7 +856,7 @@ function administration.init_command(self_, config)
|
||||
utilities.send_message(self, msg.chat.id, output, true, nil, true)
|
||||
end
|
||||
if group.grouptype == 'supergroup' then
|
||||
administration.update_desc(self, msg.chat.id)
|
||||
administration.update_desc(self, msg.chat.id, config)
|
||||
end
|
||||
else
|
||||
utilities.send_reply(self, msg, 'Please specify the new message of the day.')
|
||||
@ -862,7 +865,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /setlink
|
||||
triggers = utilities.triggers(self_.info.username):t('setlink', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('setlink', true).table,
|
||||
|
||||
command = 'setlink <link>',
|
||||
privilege = 3,
|
||||
@ -885,7 +888,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /alist
|
||||
triggers = utilities.triggers(self_.info.username):t('alist').table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('alist').table,
|
||||
|
||||
command = 'alist',
|
||||
privilege = 3,
|
||||
@ -903,7 +906,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /flags
|
||||
triggers = utilities.triggers(self_.info.username):t('flags?', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('flags?', true).table,
|
||||
|
||||
command = 'flag \\[i]',
|
||||
privilege = 3,
|
||||
@ -935,7 +938,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /antiflood
|
||||
triggers = utilities.triggers(self_.info.username):t('antiflood', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('antiflood', true).table,
|
||||
|
||||
command = 'antiflood \\[<type> <i>]',
|
||||
privilege = 3,
|
||||
@ -944,7 +947,7 @@ function administration.init_command(self_, config)
|
||||
|
||||
action = function(self, msg, group, config)
|
||||
if not group.flags[5] then
|
||||
utilities.send_message(self, msg.chat.id, 'antiflood is not enabled. Use `'..utilities.CMD_PAT..'flag 5` to enable it.', true, nil, true)
|
||||
utilities.send_message(self, msg.chat.id, 'antiflood is not enabled. Use `'..config.cmd_pat..'flag 5` to enable it.', true, nil, true)
|
||||
else
|
||||
if not group.antiflood then
|
||||
group.antiflood = JSON.decode(JSON.encode(administration.antiflood))
|
||||
@ -963,7 +966,7 @@ function administration.init_command(self_, config)
|
||||
output = '*' .. key:gsub('^%l', string.upper) .. '* messages are now worth *' .. val .. '* points.'
|
||||
end
|
||||
else
|
||||
output = 'usage: `'..utilities.CMD_PAT..'antiflood <type> <i>`\nexample: `'..utilities.CMD_PAT..'antiflood text 5`\nUse this command to configure the point values for each message type. When a user reaches 100 points, he is kicked. The points are reset each minute. The current values are:\n'
|
||||
output = 'usage: `'..config.cmd_pat..'antiflood <type> <i>`\nexample: `'..config.cmd_pat..'antiflood text 5`\nUse this command to configure the point values for each message type. When a user reaches 100 points, he is kicked. The points are reset each minute. The current values are:\n'
|
||||
for k,v in pairs(group.antiflood) do
|
||||
output = output .. '*'..k..':* `'..v..'`\n'
|
||||
end
|
||||
@ -975,7 +978,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /mod
|
||||
triggers = utilities.triggers(self_.info.username):t('mod', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('mod', true).table,
|
||||
|
||||
command = 'mod <user>',
|
||||
privilege = 3,
|
||||
@ -1002,7 +1005,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /demod
|
||||
triggers = utilities.triggers(self_.info.username):t('demod', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('demod', true).table,
|
||||
|
||||
command = 'demod <user>',
|
||||
privilege = 3,
|
||||
@ -1028,7 +1031,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /gov
|
||||
triggers = utilities.triggers(self_.info.username):t('gov', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('gov', true).table,
|
||||
|
||||
command = 'gov <user>',
|
||||
privilege = 4,
|
||||
@ -1050,14 +1053,14 @@ function administration.init_command(self_, config)
|
||||
end
|
||||
if group.grouptype == 'supergroup' then
|
||||
drua.channel_set_admin(msg.chat.id, target.id, 2)
|
||||
administration.update_desc(self, msg.chat.id)
|
||||
administration.update_desc(self, msg.chat.id, config)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
{ -- /degov
|
||||
triggers = utilities.triggers(self_.info.username):t('degov', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('degov', true).table,
|
||||
|
||||
command = 'degov <user>',
|
||||
privilege = 4,
|
||||
@ -1077,14 +1080,14 @@ function administration.init_command(self_, config)
|
||||
end
|
||||
if group.grouptype == 'supergroup' then
|
||||
drua.channel_set_admin(msg.chat.id, target.id, 0)
|
||||
administration.update_desc(self, msg.chat.id)
|
||||
administration.update_desc(self, msg.chat.id, config)
|
||||
end
|
||||
end
|
||||
end
|
||||
},
|
||||
|
||||
{ -- /hammer
|
||||
triggers = utilities.triggers(self_.info.username):t('hammer', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('hammer', true).table,
|
||||
|
||||
command = 'hammer <user>',
|
||||
privilege = 4,
|
||||
@ -1120,7 +1123,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /unhammer
|
||||
triggers = utilities.triggers(self_.info.username):t('unhammer', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('unhammer', true).table,
|
||||
|
||||
command = 'unhammer <user>',
|
||||
privilege = 4,
|
||||
@ -1144,7 +1147,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /admin
|
||||
triggers = utilities.triggers(self_.info.username):t('admin', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('admin', true).table,
|
||||
|
||||
command = 'admin <user>',
|
||||
privilege = 5,
|
||||
@ -1171,7 +1174,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /deadmin
|
||||
triggers = utilities.triggers(self_.info.username):t('deadmin', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('deadmin', true).table,
|
||||
|
||||
command = 'deadmin <user>',
|
||||
privilege = 5,
|
||||
@ -1199,7 +1202,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /gadd
|
||||
triggers = utilities.triggers(self_.info.username):t('gadd', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('gadd', true).table,
|
||||
|
||||
command = 'gadd [i] ...',
|
||||
privilege = 5,
|
||||
@ -1238,7 +1241,7 @@ function administration.init_command(self_, config)
|
||||
autokicks = {},
|
||||
autoban = 3
|
||||
}
|
||||
administration.update_desc(self, msg.chat.id)
|
||||
administration.update_desc(self, msg.chat.id, config)
|
||||
table.insert(self.database.administration.activity, msg.chat.id_str)
|
||||
utilities.send_reply(self, msg, 'I am now administrating this group.')
|
||||
drua.channel_set_admin(msg.chat.id, self.info.id, 2)
|
||||
@ -1247,7 +1250,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /grem
|
||||
triggers = utilities.triggers(self_.info.username):t('grem', true):t('gremove', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('grem', true):t('gremove', true).table,
|
||||
|
||||
command = 'gremove \\[chat]',
|
||||
privilege = 5,
|
||||
@ -1278,7 +1281,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /glist
|
||||
triggers = utilities.triggers(self_.info.username):t('glist', false).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('glist', false).table,
|
||||
|
||||
command = 'glist',
|
||||
privilege = 5,
|
||||
@ -1307,7 +1310,7 @@ function administration.init_command(self_, config)
|
||||
},
|
||||
|
||||
{ -- /broadcast
|
||||
triggers = utilities.triggers(self_.info.username):t('broadcast', true).table,
|
||||
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('broadcast', true).table,
|
||||
|
||||
command = 'broadcast <message>',
|
||||
privilege = 5,
|
||||
@ -1389,6 +1392,5 @@ function administration:cron()
|
||||
end
|
||||
|
||||
administration.command = 'groups'
|
||||
administration.doc = '`Returns a list of administrated groups.\nUse '..utilities.CMD_PAT..'ahelp for more administrative commands.`'
|
||||
|
||||
return administration
|
||||
|
@ -8,20 +8,20 @@ local URL = require('socket.url')
|
||||
local utilities = require('utilities')
|
||||
|
||||
apod.command = 'apod [date]'
|
||||
apod.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[apod [query]
|
||||
|
||||
function apod:init(config)
|
||||
apod.triggers = utilities.triggers(self.info.username, config.cmd_pat)
|
||||
:t('apod', true):t('apodhd', true):t('apodtext', true).table
|
||||
apod.doc = [[```
|
||||
]]..config.cmd_pat..[[apod [query]
|
||||
Returns the Astronomy Picture of the Day.
|
||||
If the query is a date, in the format YYYY-MM-DD, the APOD of that day is returned.
|
||||
]]..utilities.CMD_PAT..[[apodhd [query]
|
||||
]]..config.cmd_pat..[[apodhd [query]
|
||||
Returns the image in HD, if available.
|
||||
]]..utilities.CMD_PAT..[[apodtext [query]
|
||||
]]..config.cmd_pat..[[apodtext [query]
|
||||
Returns the explanation of the APOD.
|
||||
Source: nasa.gov
|
||||
```]]
|
||||
|
||||
function apod:init()
|
||||
apod.triggers = utilities.triggers(self.info.username)
|
||||
:t('apod', true):t('apodhd', true):t('apodtext', true).table
|
||||
end
|
||||
|
||||
function apod:action(msg, config)
|
||||
@ -65,13 +65,13 @@ function apod:action(msg, config)
|
||||
|
||||
local img_url = jdat.url
|
||||
|
||||
if string.match(msg.text, '^'..utilities.CMD_PAT..'apodhd*') then
|
||||
if string.match(msg.text, '^'..config.cmd_pat..'apodhd*') then
|
||||
img_url = jdat.hdurl or jdat.url
|
||||
end
|
||||
|
||||
local output = date .. '[' .. jdat.title .. '](' .. img_url .. ')'
|
||||
|
||||
if string.match(msg.text, '^'..utilities.CMD_PAT..'apodtext*') then
|
||||
if string.match(msg.text, '^'..config.cmd_pat..'apodtext*') then
|
||||
output = output .. '\n' .. jdat.explanation
|
||||
disable_page_preview = true
|
||||
end
|
||||
|
@ -3,13 +3,13 @@ local bandersnatch = {}
|
||||
local utilities = require('utilities')
|
||||
|
||||
bandersnatch.command = 'bandersnatch'
|
||||
bandersnatch.doc = [[```
|
||||
Shun the frumious Bandersnatch.
|
||||
Alias: ]]..utilities.CMD_PAT..[[bc
|
||||
```]]
|
||||
|
||||
function bandersnatch:init()
|
||||
bandersnatch.triggers = utilities.triggers(self.info.username):t('bandersnatch'):t('bc').table
|
||||
function bandersnatch:init(config)
|
||||
bandersnatch.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('bandersnatch'):t('bc').table
|
||||
bandersnatch.doc = [[```
|
||||
Shun the frumious Bandersnatch.
|
||||
Alias: ]]..config.cmd_pat..[[bc
|
||||
```]]
|
||||
end
|
||||
|
||||
local fullnames = { "Wimbledon Tennismatch", "Rinkydink Curdlesnoot", "Butawhiteboy Cantbekhan", "Benadryl Claritin", "Bombadil Rivendell", "Wanda's Crotchfruit", "Biblical Concubine", "Syphilis Cankersore", "Buckminster Fullerene", "Bourgeoisie Capitalist" }
|
||||
|
@ -11,15 +11,15 @@ function bible:init(config)
|
||||
return
|
||||
end
|
||||
|
||||
bible.triggers = utilities.triggers(self.info.username):t('bible', true):t('b', true).table
|
||||
bible.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('bible', true):t('b', true).table
|
||||
bible.doc = [[```
|
||||
]]..config.cmd_pat..[[bible <reference>
|
||||
Returns a verse from the American Standard Version of the Bible, or an apocryphal verse from the King James Version. Results from biblia.com.
|
||||
Alias: ]]..config.cmd_pat..[[b
|
||||
```]]
|
||||
end
|
||||
|
||||
bible.command = 'bible <reference>'
|
||||
bible.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[bible <reference>
|
||||
Returns a verse from the American Standard Version of the Bible, or an apocryphal verse from the King James Version. Results from biblia.com.
|
||||
Alias: ]]..utilities.CMD_PAT..[[b
|
||||
```]]
|
||||
|
||||
function bible:action(msg, config)
|
||||
|
||||
|
@ -19,7 +19,7 @@ function blacklist:action(msg, config)
|
||||
|
||||
if self.database.blacklist[msg.from.id_str] then return end
|
||||
if self.database.blacklist[msg.chat.id_str] then return end
|
||||
if not msg.text:match('^'..utilities.CMD_PAT..'blacklist') then return true end
|
||||
if not msg.text:match('^'..config.cmd_pat..'blacklist') then return true end
|
||||
if msg.from.id ~= config.admin then return end
|
||||
|
||||
local target = utilities.user_from_message(self, msg)
|
||||
|
@ -5,13 +5,13 @@ local HTTPS = require('ssl.https')
|
||||
local utilities = require('utilities')
|
||||
|
||||
calc.command = 'calc <expression>'
|
||||
calc.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[calc <expression>
|
||||
|
||||
function calc:init(config)
|
||||
calc.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('calc', true).table
|
||||
calc.doc = [[```
|
||||
]]..config.cmd_pat..[[calc <expression>
|
||||
Returns solutions to mathematical expressions and conversions between common units. Results provided by mathjs.org.
|
||||
```]]
|
||||
|
||||
function calc:init()
|
||||
calc.triggers = utilities.triggers(self.info.username):t('calc', true).table
|
||||
end
|
||||
|
||||
function calc:action(msg, config)
|
||||
|
@ -9,7 +9,7 @@ function cats:init(config)
|
||||
print('cats.lua will be enabled, but there are more features with a key.')
|
||||
end
|
||||
|
||||
cats.triggers = utilities.triggers(self.info.username):t('cat').table
|
||||
cats.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('cat').table
|
||||
end
|
||||
|
||||
cats.command = 'cat'
|
||||
|
@ -6,7 +6,6 @@ local HTTP = require('socket.http')
|
||||
local URL = require('socket.url')
|
||||
local JSON = require('dkjson')
|
||||
local bindings = require('bindings')
|
||||
local utilities = require('utilities')
|
||||
|
||||
function chatter:init(config)
|
||||
if not config.simsimi_key then
|
||||
@ -34,7 +33,7 @@ function chatter:action(msg, config)
|
||||
--Uncomment the following line for Al Gore-like conversation.
|
||||
--or (msg.reply_to_message and msg.reply_to_message.from.id == self.info.id)
|
||||
)
|
||||
or msg.text:match('^'..utilities.CMD_PAT)
|
||||
or msg.text:match('^'..config.CMD_PAT)
|
||||
or msg.text == ''
|
||||
) then
|
||||
return true
|
||||
|
@ -7,8 +7,8 @@ local utilities = require('utilities')
|
||||
commit.command = 'commit'
|
||||
commit.doc = '`Returns a commit message from whatthecommit.com.`'
|
||||
|
||||
function commit:init()
|
||||
commit.triggers = utilities.triggers(self.info.username):t('commit').table
|
||||
function commit:init(config)
|
||||
commit.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('commit').table
|
||||
end
|
||||
|
||||
local commits = {
|
||||
|
@ -3,9 +3,12 @@ local control = {}
|
||||
local bot = require('bot')
|
||||
local utilities = require('utilities')
|
||||
|
||||
function control:init()
|
||||
control.triggers = utilities.triggers(self.info.username):t('reload'):t('halt').table
|
||||
table.insert(control.triggers, '^'..utilities.CMD_PAT..'script')
|
||||
local cmd_pat -- Prevents the command from being uncallable.
|
||||
|
||||
function control:init(config)
|
||||
cmd_pat = config.cmd_pat
|
||||
control.triggers = utilities.triggers(self.info.username, cmd_pat,
|
||||
{'^'..cmd_pat..'script'}):t('reload', true):t('halt').table
|
||||
end
|
||||
|
||||
function control:action(msg, config)
|
||||
@ -16,7 +19,7 @@ function control:action(msg, config)
|
||||
|
||||
if msg.date < os.time() - 1 then return end
|
||||
|
||||
if msg.text:match('^'..utilities.CMD_PAT..'reload') then
|
||||
if msg.text_lower:match('^'..cmd_pat..'reload') then
|
||||
for pac, _ in pairs(package.loaded) do
|
||||
if pac:match('^plugins%.') then
|
||||
package.loaded[pac] = nil
|
||||
@ -25,18 +28,18 @@ function control:action(msg, config)
|
||||
package.loaded['bindings'] = nil
|
||||
package.loaded['utilities'] = nil
|
||||
package.loaded['config'] = nil
|
||||
for k, v in pairs(require('config')) do
|
||||
if msg.text_lower:match('%+config') then for k, v in pairs(require('config')) do
|
||||
config[k] = v
|
||||
end
|
||||
end end
|
||||
bot.init(self, config)
|
||||
utilities.send_reply(self, msg, 'Bot reloaded!')
|
||||
elseif msg.text:match('^'..utilities.CMD_PAT..'halt') then
|
||||
elseif msg.text_lower:match('^'..cmd_pat..'halt') then
|
||||
self.is_started = false
|
||||
utilities.send_reply(self, msg, 'Stopping bot!')
|
||||
elseif msg.text:match('^'..utilities.CMD_PAT..'script') then
|
||||
local input = msg.text:match('^'..utilities.CMD_PAT..'script\n(.+)')
|
||||
elseif msg.text_lower:match('^'..cmd_pat..'script') then
|
||||
local input = msg.text_lower:match('^'..cmd_pat..'script\n(.+)')
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, 'usage: ```\n'..utilities.CMD_PAT..'script\n'..utilities.CMD_PAT..'command <arg>\n...\n```', true)
|
||||
utilities.send_reply(self, msg, 'usage: ```\n'..cmd_pat..'script\n'..cmd_pat..'command <arg>\n...\n```', true)
|
||||
return
|
||||
end
|
||||
input = input .. '\n'
|
||||
|
@ -4,15 +4,15 @@ local HTTPS = require('ssl.https')
|
||||
local utilities = require('utilities')
|
||||
|
||||
currency.command = 'cash [amount] <from> to <to>'
|
||||
currency.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[cash [amount] <from> to <to>
|
||||
Example: ]]..utilities.CMD_PAT..[[cash 5 USD to EUR
|
||||
|
||||
function currency:init(config)
|
||||
currency.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('cash', true).table
|
||||
currency.doc = [[```
|
||||
]]..config.cmd_pat..[[cash [amount] <from> to <to>
|
||||
Example: ]]..config.cmd_pat..[[cash 5 USD to EUR
|
||||
Returns exchange rates for various currencies.
|
||||
Source: Google Finance.
|
||||
```]]
|
||||
|
||||
function currency:init()
|
||||
currency.triggers = utilities.triggers(self.info.username):t('cash', true).table
|
||||
end
|
||||
|
||||
function currency:action(msg, config)
|
||||
|
@ -3,13 +3,13 @@ local dice = {}
|
||||
local utilities = require('utilities')
|
||||
|
||||
dice.command = 'roll <nDr>'
|
||||
dice.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[roll <nDr>
|
||||
|
||||
function dice:init(config)
|
||||
dice.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('roll', true).table
|
||||
dice.doc = [[```
|
||||
]]..config.cmd_pat..[[roll <nDr>
|
||||
Returns a set of dice rolls, where n is the number of rolls and r is the range. If only a range is given, returns only one roll.
|
||||
```]]
|
||||
|
||||
function dice:init()
|
||||
dice.triggers = utilities.triggers(self.info.username):t('roll', true).table
|
||||
end
|
||||
|
||||
function dice:action(msg)
|
||||
|
@ -6,15 +6,15 @@ local bindings = require('bindings')
|
||||
local utilities = require('utilities')
|
||||
|
||||
dilbert.command = 'dilbert [date]'
|
||||
dilbert.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[dilbert [YYYY-MM-DD]
|
||||
|
||||
function dilbert:init(config)
|
||||
dilbert.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('dilbert', true).table
|
||||
dilbert.doc = [[```
|
||||
]]..config.cmd_pat..[[dilbert [YYYY-MM-DD]
|
||||
Returns the latest Dilbert strip or that of the provided date.
|
||||
Dates before the first strip will return the first strip. Dates after the last trip will return the last strip.
|
||||
Source: dilbert.com
|
||||
```]]
|
||||
|
||||
function dilbert:init()
|
||||
dilbert.triggers = utilities.triggers(self.info.username):t('dilbert', true).table
|
||||
end
|
||||
|
||||
function dilbert:action(msg, config)
|
||||
|
@ -3,13 +3,13 @@ local echo = {}
|
||||
local utilities = require('utilities')
|
||||
|
||||
echo.command = 'echo <text>'
|
||||
echo.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[echo <text>
|
||||
|
||||
function echo:init(config)
|
||||
echo.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('echo', true).table
|
||||
echo.doc = [[```
|
||||
]]..config.cmd_pat..[[echo <text>
|
||||
Repeats a string of text.
|
||||
```]]
|
||||
|
||||
function echo:init()
|
||||
echo.triggers = utilities.triggers(self.info.username):t('echo', true).table
|
||||
end
|
||||
|
||||
function echo:action(msg)
|
||||
|
@ -5,8 +5,9 @@ local utilities = require('utilities')
|
||||
eightball.command = '8ball'
|
||||
eightball.doc = '`Returns an answer from a magic 8-ball!`'
|
||||
|
||||
function eightball:init()
|
||||
eightball.triggers = utilities.triggers(self.info.username, {'[Yy]/[Nn]%p*$'}):t('8ball', true).table
|
||||
function eightball:init(config)
|
||||
eightball.triggers = utilities.triggers(self.info.username, config.cmd_pat,
|
||||
{'[Yy]/[Nn]%p*$'}):t('8ball', true).table
|
||||
end
|
||||
|
||||
local ball_answers = {
|
||||
|
@ -4,7 +4,7 @@ local fortune = {}
|
||||
|
||||
local utilities = require('utilities')
|
||||
|
||||
function fortune:init()
|
||||
function fortune:init(config)
|
||||
local s = io.popen('fortune'):read('*all')
|
||||
if s:match('not found$') then
|
||||
print('fortune is not installed on this computer.')
|
||||
@ -12,7 +12,7 @@ function fortune:init()
|
||||
return
|
||||
end
|
||||
|
||||
fortune.triggers = utilities.triggers(self.info.username):t('fortune').table
|
||||
fortune.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('fortune').table
|
||||
end
|
||||
|
||||
fortune.command = 'fortune'
|
||||
|
@ -19,15 +19,15 @@ function gImages:init(config)
|
||||
return
|
||||
end
|
||||
|
||||
gImages.triggers = utilities.triggers(self.info.username):t('image', true):t('i', true):t('insfw', true).table
|
||||
gImages.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('image', true):t('i', true):t('insfw', true).table
|
||||
gImages.doc = [[```
|
||||
]]..config.cmd_pat..[[image <query>
|
||||
Returns a randomized top result from Google Images. Safe search is enabled by default; use "]]..config.cmd_pat..[[insfw" to disable it. NSFW results will not display an image preview.
|
||||
Alias: ]]..config.cmd_pat..[[i
|
||||
```]]
|
||||
end
|
||||
|
||||
gImages.command = 'image <query>'
|
||||
gImages.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[image <query>
|
||||
Returns a randomized top result from Google Images. Safe search is enabled by default; use "]]..utilities.CMD_PAT..[[insfw" to disable it. NSFW results will not display an image preview.
|
||||
Alias: ]]..utilities.CMD_PAT..[[i
|
||||
```]]
|
||||
|
||||
function gImages:action(msg, config)
|
||||
|
||||
@ -43,7 +43,7 @@ function gImages:action(msg, config)
|
||||
|
||||
local url = 'https://www.googleapis.com/customsearch/v1?&searchType=image&imgSize=xlarge&alt=json&num=8&start=1&key=' .. config.google_api_key .. '&cx=' .. config.google_cse_key
|
||||
|
||||
if not string.match(msg.text, '^'..utilities.CMD_PAT..'i[mage]*nsfw') then
|
||||
if not string.match(msg.text, '^'..config.cmd_pat..'i[mage]*nsfw') then
|
||||
url = url .. '&safe=high'
|
||||
end
|
||||
|
||||
|
@ -4,14 +4,14 @@ local bindings = require('bindings')
|
||||
local utilities = require('utilities')
|
||||
|
||||
gMaps.command = 'location <query>'
|
||||
gMaps.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[location <query>
|
||||
Returns a location from Google Maps.
|
||||
Alias: ]]..utilities.CMD_PAT..[[loc
|
||||
```]]
|
||||
|
||||
function gMaps:init()
|
||||
gMaps.triggers = utilities.triggers(self.info.username):t('location', true):t('loc', true).table
|
||||
function gMaps:init(config)
|
||||
gMaps.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('location', true):t('loc', true).table
|
||||
gMaps.doc = [[```
|
||||
]]..config.cmd_pat..[[location <query>
|
||||
Returns a location from Google Maps.
|
||||
Alias: ]]..config.cmd_pat..[[loc
|
||||
```]]
|
||||
end
|
||||
|
||||
function gMaps:action(msg, config)
|
||||
|
@ -6,14 +6,14 @@ local JSON = require('dkjson')
|
||||
local utilities = require('utilities')
|
||||
|
||||
gSearch.command = 'google <query>'
|
||||
gSearch.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[google <query>
|
||||
Returns four (if group) or eight (if private message) results from Google. Safe search is enabled by default, use "]]..utilities.CMD_PAT..[[gnsfw" to disable it.
|
||||
Alias: ]]..utilities.CMD_PAT..[[g
|
||||
```]]
|
||||
|
||||
function gSearch:init()
|
||||
gSearch.triggers = utilities.triggers(self.info.username):t('g', true):t('google', true):t('gnsfw', true).table
|
||||
function gSearch:init(config)
|
||||
gSearch.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('g', true):t('google', true):t('gnsfw', true).table
|
||||
gSearch.doc = [[```
|
||||
]]..config.cmd_pat..[[google <query>
|
||||
Returns four (if group) or eight (if private message) results from Google. Safe search is enabled by default, use "]]..config.cmd_pat..[[gnsfw" to disable it.
|
||||
Alias: ]]..config.cmd_pat..[[g
|
||||
```]]
|
||||
end
|
||||
|
||||
function gSearch:action(msg, config)
|
||||
@ -36,7 +36,7 @@ function gSearch:action(msg, config)
|
||||
url = url .. '&rsz=4'
|
||||
end
|
||||
|
||||
if not string.match(msg.text, '^'..utilities.CMD_PAT..'g[oogle]*nsfw') then
|
||||
if not string.match(msg.text, '^'..config.cmd_pat..'g[oogle]*nsfw') then
|
||||
url = url .. '&safe=active'
|
||||
end
|
||||
|
||||
|
@ -6,13 +6,13 @@ local bindings = require('bindings')
|
||||
local utilities = require('utilities')
|
||||
|
||||
hackernews.command = 'hackernews'
|
||||
hackernews.doc = [[```
|
||||
Returns four (if group) or eight (if private message) top stories from Hacker News.
|
||||
Alias: ]]..utilities.CMD_PAT..[[hn
|
||||
```]]
|
||||
|
||||
function hackernews:init()
|
||||
hackernews.triggers = utilities.triggers(self.info.username):t('hackernews', true):t('hn', true).table
|
||||
function hackernews:init(config)
|
||||
hackernews.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('hackernews', true):t('hn', true).table
|
||||
hackernews.doc = [[```
|
||||
Returns four (if group) or eight (if private message) top stories from Hacker News.
|
||||
Alias: ]]..config.cmd_pat..[[hn
|
||||
```]]
|
||||
end
|
||||
|
||||
function hackernews:action(msg, config)
|
||||
|
@ -6,7 +6,7 @@ local hearthstone = {}
|
||||
local JSON = require('dkjson')
|
||||
local utilities = require('utilities')
|
||||
|
||||
function hearthstone:init()
|
||||
function hearthstone:init(config)
|
||||
if not self.database.hearthstone or os.time() > self.database.hearthstone.expiration then
|
||||
|
||||
print('Downloading Hearthstone database...')
|
||||
@ -36,15 +36,15 @@ function hearthstone:init()
|
||||
|
||||
end
|
||||
|
||||
hearthstone.triggers = utilities.triggers(self.info.username):t('hearthstone', true):t('hs').table
|
||||
hearthstone.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('hearthstone', true):t('hs').table
|
||||
hearthstone.doc = [[```
|
||||
]]..config.cmd_pat..[[hearthstone <query>
|
||||
Returns Hearthstone card info.
|
||||
Alias: ]]..config.cmd_pat..[[hs
|
||||
```]]
|
||||
end
|
||||
|
||||
hearthstone.command = 'hearthstone <query>'
|
||||
hearthstone.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[hearthstone <query>
|
||||
Returns Hearthstone card info.
|
||||
Alias: ]]..utilities.CMD_PAT..[[hs
|
||||
```]]
|
||||
|
||||
local function format_card(card)
|
||||
|
||||
|
@ -7,26 +7,26 @@ local utilities = require('utilities')
|
||||
|
||||
local help_text
|
||||
|
||||
function help:init()
|
||||
function help:init(config)
|
||||
|
||||
local commandlist = {}
|
||||
help_text = '*Available commands:*\n• '..utilities.CMD_PAT
|
||||
help_text = '*Available commands:*\n• '..config.cmd_pat
|
||||
|
||||
for _,plugin in ipairs(self.plugins) do
|
||||
if plugin.command then
|
||||
table.insert(commandlist, plugin.command)
|
||||
--help_text = help_text .. '\n• '..utilities.CMD_PAT .. plugin.command:gsub('%[', '\\[')
|
||||
--help_text = help_text .. '\n• '..config.cmd_pat .. plugin.command:gsub('%[', '\\[')
|
||||
end
|
||||
end
|
||||
|
||||
table.insert(commandlist, 'help [command]')
|
||||
table.sort(commandlist)
|
||||
|
||||
help_text = help_text .. table.concat(commandlist, '\n• '..utilities.CMD_PAT) .. '\nArguments: <required> [optional]'
|
||||
help_text = help_text .. table.concat(commandlist, '\n• '..config.cmd_pat) .. '\nArguments: <required> [optional]'
|
||||
|
||||
help_text = help_text:gsub('%[', '\\[')
|
||||
|
||||
help.triggers = utilities.triggers(self.info.username):t('help', true):t('h', true).table
|
||||
help.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('help', true):t('h', true).table
|
||||
|
||||
end
|
||||
|
||||
|
@ -6,13 +6,13 @@ local JSON = require('dkjson')
|
||||
local utilities = require('utilities')
|
||||
|
||||
imdb.command = 'imdb <query>'
|
||||
imdb.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[imdb <query>
|
||||
|
||||
function imdb:init(config)
|
||||
imdb.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('imdb', true).table
|
||||
imdb.doc = [[```
|
||||
]]..config.cmd_pat..[[imdb <query>
|
||||
Returns an IMDb entry.
|
||||
```]]
|
||||
|
||||
function imdb:init()
|
||||
imdb.triggers = utilities.triggers(self.info.username):t('imdb', true).table
|
||||
end
|
||||
|
||||
function imdb:action(msg, config)
|
||||
|
@ -15,26 +15,26 @@ function lastfm:init(config)
|
||||
return
|
||||
end
|
||||
|
||||
lastfm.triggers = utilities.triggers(self.info.username):t('lastfm', true):t('np', true):t('fmset', true).table
|
||||
lastfm.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('lastfm', true):t('np', true):t('fmset', true).table
|
||||
lastfm.doc = [[```
|
||||
]]..config.cmd_pat..[[np [username]
|
||||
Returns what you are or were last listening to. If you specify a username, info will be returned for that username.
|
||||
|
||||
]]..config.cmd_pat..[[fmset <username>
|
||||
Sets your last.fm username. Otherwise, ]]..config.cmd_pat..[[np will use your Telegram username. Use "]]..config.cmd_pat..[[fmset --" to delete it.
|
||||
```]]
|
||||
end
|
||||
|
||||
lastfm.command = 'lastfm'
|
||||
lastfm.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[np [username]
|
||||
Returns what you are or were last listening to. If you specify a username, info will be returned for that username.
|
||||
|
||||
]]..utilities.CMD_PAT..[[fmset <username>
|
||||
Sets your last.fm username. Otherwise, ]]..utilities.CMD_PAT..[[np will use your Telegram username. Use "]]..utilities.CMD_PAT..[[fmset --" to delete it.
|
||||
```]]
|
||||
|
||||
function lastfm:action(msg, config)
|
||||
|
||||
local input = utilities.input(msg.text)
|
||||
|
||||
if string.match(msg.text, '^'..utilities.CMD_PAT..'lastfm') then
|
||||
if string.match(msg.text, '^'..config.cmd_pat..'lastfm') then
|
||||
utilities.send_message(self, msg.chat.id, lastfm.doc, true, msg.message_id, true)
|
||||
return
|
||||
elseif string.match(msg.text, '^'..utilities.CMD_PAT..'fmset') then
|
||||
elseif string.match(msg.text, '^'..config.cmd_pat..'fmset') then
|
||||
if not input then
|
||||
utilities.send_message(self, msg.chat.id, lastfm.doc, true, msg.message_id, true)
|
||||
elseif input == '--' or input == utilities.char.em_dash then
|
||||
@ -57,10 +57,10 @@ function lastfm:action(msg, config)
|
||||
username = self.database.users[msg.from.id_str].lastfm
|
||||
elseif msg.from.username then
|
||||
username = msg.from.username
|
||||
alert = '\n\nYour username has been set to ' .. username .. '.\nTo change it, use '..utilities.CMD_PAT..'fmset <username>.'
|
||||
alert = '\n\nYour username has been set to ' .. username .. '.\nTo change it, use '..config.cmd_pat..'fmset <username>.'
|
||||
self.database.users[msg.from.id_str].lastfm = username
|
||||
else
|
||||
utilities.send_reply(self, msg, 'Please specify your last.fm username or set it with '..utilities.CMD_PAT..'fmset.')
|
||||
utilities.send_reply(self, msg, 'Please specify your last.fm username or set it with '..config.cmd_pat..'fmset.')
|
||||
return
|
||||
end
|
||||
|
||||
@ -78,7 +78,7 @@ function lastfm:action(msg, config)
|
||||
|
||||
local jdat = JSON.decode(jstr)
|
||||
if jdat.error then
|
||||
utilities.send_reply(self, msg, 'Please specify your last.fm username or set it with '..utilities.CMD_PAT..'fmset.')
|
||||
utilities.send_reply(self, msg, 'Please specify your last.fm username or set it with '..config.cmd_pat..'fmset.')
|
||||
return
|
||||
end
|
||||
|
||||
|
@ -4,8 +4,8 @@ local utilities = require('utilities')
|
||||
local URL = require('socket.url')
|
||||
local JSON = require('dkjson')
|
||||
|
||||
function luarun:init()
|
||||
luarun.triggers = utilities.triggers(self.info.username):t('lua', true):t('return', true).table
|
||||
function luarun:init(config)
|
||||
luarun.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('lua', true):t('return', true).table
|
||||
end
|
||||
|
||||
function luarun:action(msg, config)
|
||||
@ -20,7 +20,7 @@ function luarun:action(msg, config)
|
||||
return
|
||||
end
|
||||
|
||||
if msg.text_lower:match('^'..utilities.CMD_PAT..'return') then
|
||||
if msg.text_lower:match('^'..config.cmd_pat..'return') then
|
||||
input = 'return ' .. input
|
||||
end
|
||||
|
||||
@ -32,8 +32,8 @@ function luarun:action(msg, config)
|
||||
local URL = require('socket.url')
|
||||
local HTTP = require('socket.http')
|
||||
local HTTPS = require('ssl.https')
|
||||
return function (self, msg) ]] .. input .. [[ end
|
||||
]] )()(self, msg)
|
||||
return function (self, msg, config) ]] .. input .. [[ end
|
||||
]] )()(self, msg, config)
|
||||
if output == nil then
|
||||
output = 'Done!'
|
||||
else
|
||||
|
@ -2,8 +2,8 @@ local me = {}
|
||||
|
||||
local utilities = require('utilities')
|
||||
|
||||
function me:init()
|
||||
me.triggers = utilities.triggers(self.info.username):t('me', true).table
|
||||
function me:init(config)
|
||||
me.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('me', true).table
|
||||
end
|
||||
|
||||
function me:action(msg, config)
|
||||
|
@ -3,13 +3,13 @@ local nick = {}
|
||||
local utilities = require('utilities')
|
||||
|
||||
nick.command = 'nick <nickname>'
|
||||
nick.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[nick <nickname>
|
||||
Set your nickname. Use "]]..utilities.CMD_PAT..[[nick --" to delete it.
|
||||
```]]
|
||||
|
||||
function nick:init()
|
||||
nick.triggers = utilities.triggers(self.info.username):t('nick', true).table
|
||||
function nick:init(config)
|
||||
nick.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('nick', true).table
|
||||
nick.doc = [[```
|
||||
]]..config.cmd_pat..[[nick <nickname>
|
||||
Set your nickname. Use "]]..config.cmd_pat..[[nick --" to delete it.
|
||||
```]]
|
||||
end
|
||||
|
||||
function nick:action(msg, config)
|
||||
|
@ -4,12 +4,12 @@ local ping = {}
|
||||
|
||||
local utilities = require('utilities')
|
||||
|
||||
function ping:init()
|
||||
ping.triggers = utilities.triggers(self.info.username):t('ping'):t('annyong').table
|
||||
function ping:init(config)
|
||||
ping.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('ping'):t('annyong').table
|
||||
end
|
||||
|
||||
function ping:action(msg)
|
||||
local output = msg.text_lower:match('^'..utilities.CMD_PAT..'ping') and 'Pong!' or 'Annyong.'
|
||||
function ping:action(msg, config)
|
||||
local output = msg.text_lower:match('^'..config.cmd_pat..'ping') and 'Pong!' or 'Annyong.'
|
||||
utilities.send_message(self, msg.chat.id, output)
|
||||
end
|
||||
|
||||
|
@ -6,14 +6,14 @@ local bindings = require('bindings')
|
||||
local utilities = require('utilities')
|
||||
|
||||
pokedex.command = 'pokedex <query>'
|
||||
pokedex.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[pokedex <query>
|
||||
Returns a Pokedex entry from pokeapi.co.
|
||||
Alias: ]]..utilities.CMD_PAT..[[dex
|
||||
```]]
|
||||
|
||||
function pokedex:init()
|
||||
pokedex.triggers = utilities.triggers(self.info.username):t('pokedex', true):t('dex', true).table
|
||||
function pokedex:init(config)
|
||||
pokedex.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('pokedex', true):t('dex', true).table
|
||||
pokedex.doc = [[```
|
||||
]]..config.cmd_pat..[[pokedex <query>
|
||||
Returns a Pokedex entry from pokeapi.co.
|
||||
Alias: ]]..config.cmd_pat..[[dex
|
||||
```]]
|
||||
end
|
||||
|
||||
function pokedex:action(msg, config)
|
||||
|
@ -4,13 +4,13 @@ local HTTP = require('socket.http')
|
||||
local utilities = require('utilities')
|
||||
|
||||
preview.command = 'preview <link>'
|
||||
preview.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[preview <link>
|
||||
|
||||
function preview:init(config)
|
||||
preview.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('preview', true).table
|
||||
preview.doc = [[```
|
||||
]]..config.cmd_pat..[[preview <link>
|
||||
Returns a full-message, "unlinked" preview.
|
||||
```]]
|
||||
|
||||
function preview:init()
|
||||
preview.triggers = utilities.triggers(self.info.username):t('preview', true).table
|
||||
end
|
||||
|
||||
function preview:action(msg)
|
||||
|
@ -5,8 +5,8 @@ local utilities = require('utilities')
|
||||
pun.command = 'pun'
|
||||
pun.doc = '`Returns a pun.`'
|
||||
|
||||
function pun:init()
|
||||
pun.triggers = utilities.triggers(self.info.username):t('pun').table
|
||||
function pun:init(config)
|
||||
pun.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('pun').table
|
||||
end
|
||||
|
||||
local puns = {
|
||||
|
@ -25,24 +25,24 @@ local mapping = {
|
||||
|
||||
local help
|
||||
|
||||
function reactions:init()
|
||||
function reactions:init(config)
|
||||
-- Generate a "help" message triggered by "/reactions".
|
||||
help = 'Reactions:\n'
|
||||
reactions.triggers = utilities.triggers(self.info.username):t('reactions').table
|
||||
reactions.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('reactions').table
|
||||
for trigger,reaction in pairs(mapping) do
|
||||
help = help .. '• ' .. utilities.CMD_PAT .. trigger:gsub('.%?', '') .. ': ' .. reaction .. '\n'
|
||||
table.insert(reactions.triggers, utilities.CMD_PAT..trigger)
|
||||
table.insert(reactions.triggers, utilities.CMD_PAT..trigger..'@'..self.info.username:lower())
|
||||
help = help .. '• ' .. config.cmd_pat .. trigger:gsub('.%?', '') .. ': ' .. reaction .. '\n'
|
||||
table.insert(reactions.triggers, config.cmd_pat..trigger)
|
||||
table.insert(reactions.triggers, config.cmd_pat..trigger..'@'..self.info.username:lower())
|
||||
end
|
||||
end
|
||||
|
||||
function reactions:action(msg)
|
||||
if string.match(msg.text_lower, utilities.CMD_PAT..'reactions') then
|
||||
function reactions:action(msg, config)
|
||||
if string.match(msg.text_lower, config.cmd_pat..'reactions') then
|
||||
utilities.send_message(self, msg.chat.id, help)
|
||||
return
|
||||
end
|
||||
for trigger,reaction in pairs(mapping) do
|
||||
if string.match(msg.text_lower, utilities.CMD_PAT..trigger) then
|
||||
if string.match(msg.text_lower, config.cmd_pat..trigger) then
|
||||
utilities.send_message(self, msg.chat.id, reaction)
|
||||
return
|
||||
end
|
||||
|
@ -6,14 +6,14 @@ local JSON = require('dkjson')
|
||||
local utilities = require('utilities')
|
||||
|
||||
reddit.command = 'reddit [r/subreddit | query]'
|
||||
reddit.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[reddit [r/subreddit | query]
|
||||
Returns the top posts or results for a given subreddit or query. If no argument is given, returns the top posts from r/all. Querying specific subreddits is not supported.
|
||||
Aliases: ]]..utilities.CMD_PAT..[[r, /r/subreddit
|
||||
```]]
|
||||
|
||||
function reddit:init()
|
||||
reddit.triggers = utilities.triggers(self.info.username, {'^/r/'}):t('reddit', true):t('r', true):t('r/', true).table
|
||||
function reddit:init(config)
|
||||
reddit.triggers = utilities.triggers(self.info.username, config.cmd_pat, {'^/r/'}):t('reddit', true):t('r', true):t('r/', true).table
|
||||
reddit.doc = [[```
|
||||
]]..config.cmd_pat..[[reddit [r/subreddit | query]
|
||||
Returns the top posts or results for a given subreddit or query. If no argument is given, returns the top posts from r/all. Querying specific subreddits is not supported.
|
||||
Aliases: ]]..config.cmd_pat..[[r, /r/subreddit
|
||||
```]]
|
||||
end
|
||||
|
||||
local format_results = function(posts)
|
||||
@ -48,7 +48,7 @@ function reddit:action(msg, config)
|
||||
local text = msg.text_lower
|
||||
if text:match('^/r/.') then
|
||||
-- Normalize input so this hack works easily.
|
||||
text = msg.text_lower:gsub('^/r/', utilities.CMD_PAT..'r r/')
|
||||
text = msg.text_lower:gsub('^/r/', config.cmd_pat..'r r/')
|
||||
end
|
||||
local input = utilities.input(text)
|
||||
local source, url
|
||||
|
@ -3,15 +3,15 @@ local remind = {}
|
||||
local utilities = require('utilities')
|
||||
|
||||
remind.command = 'remind <duration> <message>'
|
||||
remind.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[remind <duration> <message>
|
||||
Repeats a message after a duration of time, in minutes.
|
||||
```]]
|
||||
|
||||
function remind:init()
|
||||
function remind:init(config)
|
||||
self.database.reminders = self.database.reminders or {}
|
||||
|
||||
remind.triggers = utilities.triggers(self.info.username):t('remind', true).table
|
||||
remind.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('remind', true).table
|
||||
remind.doc = [[```
|
||||
]]..config.cmd_pat..[[remind <duration> <message>
|
||||
Repeats a message after a duration of time, in minutes.
|
||||
```]]
|
||||
end
|
||||
|
||||
function remind:action(msg)
|
||||
|
@ -2,26 +2,25 @@ local setandget = {}
|
||||
|
||||
local utilities = require('utilities')
|
||||
|
||||
function setandget:init()
|
||||
function setandget:init(config)
|
||||
self.database.setandget = self.database.setandget or {}
|
||||
setandget.triggers = utilities.triggers(self.info.username):t('set', true):t('get', true).table
|
||||
setandget.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('set', true):t('get', true).table
|
||||
setandget.doc = [[```
|
||||
]]..config.cmd_pat..[[set <name> <value>
|
||||
Stores a value with the given name. Use "]]..config.cmd_pat..[[set <name> --" to delete the stored value.
|
||||
]]..config.cmd_pat..[[get [name]
|
||||
Returns the stored value or a list of stored values.
|
||||
```]]
|
||||
end
|
||||
|
||||
setandget.command = 'set <name> <value>'
|
||||
setandget.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[set <name> <value>
|
||||
Stores a value with the given name. Use "]]..utilities.CMD_PAT..[[set <name> --" to delete the stored value.
|
||||
]]..utilities.CMD_PAT..[[get [name]
|
||||
Returns the stored value or a list of stored values.
|
||||
```]]
|
||||
|
||||
|
||||
function setandget:action(msg)
|
||||
function setandget:action(msg, config)
|
||||
|
||||
local input = utilities.input(msg.text)
|
||||
self.database.setandget[msg.chat.id_str] = self.database.setandget[msg.chat.id_str] or {}
|
||||
|
||||
if msg.text_lower:match('^'..utilities.CMD_PAT..'set') then
|
||||
if msg.text_lower:match('^'..config.cmd_pat..'set') then
|
||||
|
||||
if not input then
|
||||
utilities.send_message(self, msg.chat.id, setandget.doc, true, nil, true)
|
||||
@ -41,7 +40,7 @@ function setandget:action(msg)
|
||||
utilities.send_message(self, msg.chat.id, '"' .. name .. '" has been set to "' .. value .. '".', true)
|
||||
end
|
||||
|
||||
elseif msg.text_lower:match('^'..utilities.CMD_PAT..'get') then
|
||||
elseif msg.text_lower:match('^'..config.cmd_pat..'get') then
|
||||
|
||||
if not input then
|
||||
local output
|
||||
|
@ -2,8 +2,8 @@ local shell = {}
|
||||
|
||||
local utilities = require('utilities')
|
||||
|
||||
function shell:init()
|
||||
shell.triggers = utilities.triggers(self.info.username):t('run', true).table
|
||||
function shell:init(config)
|
||||
shell.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('run', true).table
|
||||
end
|
||||
|
||||
function shell:action(msg, config)
|
||||
|
@ -3,13 +3,13 @@ local shout = {}
|
||||
local utilities = require('utilities')
|
||||
|
||||
shout.command = 'shout <text>'
|
||||
shout.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[shout <text>
|
||||
|
||||
function shout:init(config)
|
||||
shout.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('shout', true).table
|
||||
shout.doc = [[```
|
||||
]]..config.CMD_PAT..[[shout <text>
|
||||
Shouts something. Input may be the replied-to message.
|
||||
```]]
|
||||
|
||||
function shout:init()
|
||||
shout.triggers = utilities.triggers(self.info.username):t('shout', true).table
|
||||
end
|
||||
|
||||
function shout:action(msg)
|
||||
|
@ -3,13 +3,13 @@ local slap = {}
|
||||
local utilities = require('utilities')
|
||||
|
||||
slap.command = 'slap [target]'
|
||||
slap.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[slap [target]
|
||||
|
||||
function slap:init(config)
|
||||
slap.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('slap', true).table
|
||||
slap.doc = [[```
|
||||
]]..config.cmd_pat..[[slap [target]
|
||||
Slap somebody.
|
||||
```]]
|
||||
|
||||
function slap:init()
|
||||
slap.triggers = utilities.triggers(self.info.username):t('slap', true).table
|
||||
end
|
||||
|
||||
local slaps = {
|
||||
|
@ -5,13 +5,13 @@ local JSON = require('dkjson')
|
||||
local utilities = require('utilities')
|
||||
|
||||
time.command = 'time <location>'
|
||||
time.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[time <location>
|
||||
|
||||
function time:init(config)
|
||||
time.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('time', true).table
|
||||
time.doc = [[```
|
||||
]]..config.cmd_pat..[[time <location>
|
||||
Returns the time, date, and timezone for the given location.
|
||||
```]]
|
||||
|
||||
function time:init()
|
||||
time.triggers = utilities.triggers(self.info.username):t('time', true).table
|
||||
end
|
||||
|
||||
function time:action(msg, config)
|
||||
|
@ -6,13 +6,13 @@ local JSON = require('dkjson')
|
||||
local utilities = require('utilities')
|
||||
|
||||
translate.command = 'translate [text]'
|
||||
translate.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[translate [text]
|
||||
|
||||
function translate:init(config)
|
||||
translate.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('translate', true):t('tl', true).table
|
||||
translate.doc = [[```
|
||||
]]..config.cmd_pat..[[translate [text]
|
||||
Translates input or the replied-to message into the bot's language.
|
||||
```]]
|
||||
|
||||
function translate:init()
|
||||
translate.triggers = utilities.triggers(self.info.username):t('translate', true):t('tl', true).table
|
||||
end
|
||||
|
||||
function translate:action(msg, config)
|
||||
|
@ -6,14 +6,15 @@ local JSON = require('dkjson')
|
||||
local utilities = require('utilities')
|
||||
|
||||
urbandictionary.command = 'urbandictionary <query>'
|
||||
urbandictionary.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[urbandictionary <query>
|
||||
Returns a definition from Urban Dictionary.
|
||||
Aliases: ]]..utilities.CMD_PAT..[[ud, ]]..utilities.CMD_PAT..[[urban
|
||||
```]]
|
||||
|
||||
function urbandictionary:init()
|
||||
urbandictionary.triggers = utilities.triggers(self.info.username):t('urbandictionary', true):t('ud', true):t('urban', true).table
|
||||
function urbandictionary:init(config)
|
||||
urbandictionary.triggers = utilities.triggers(self.info.username, config.cmd_pat)
|
||||
:t('urbandictionary', true):t('ud', true):t('urban', true).table
|
||||
urbandictionary.doc = [[```
|
||||
]]..config.cmd_pat..[[urbandictionary <query>
|
||||
Returns a definition from Urban Dictionary.
|
||||
Aliases: ]]..config.cmd_pat..[[ud, ]]..config.cmd_pat..[[urban
|
||||
```]]
|
||||
end
|
||||
|
||||
function urbandictionary:action(msg, config)
|
||||
|
@ -11,14 +11,14 @@ function weather:init(config)
|
||||
return
|
||||
end
|
||||
|
||||
weather.triggers = utilities.triggers(self.info.username):t('weather', true).table
|
||||
weather.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('weather', true).table
|
||||
weather.doc = [[```
|
||||
]]..config.cmd_pat..[[weather <location>
|
||||
Returns the current weather conditions for a given location.
|
||||
```]]
|
||||
end
|
||||
|
||||
weather.command = 'weather <location>'
|
||||
weather.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[weather <location>
|
||||
Returns the current weather conditions for a given location.
|
||||
```]]
|
||||
|
||||
function weather:action(msg, config)
|
||||
|
||||
|
@ -3,13 +3,13 @@ local whoami = {}
|
||||
local utilities = require('utilities')
|
||||
|
||||
whoami.command = 'whoami'
|
||||
whoami.doc = [[```
|
||||
Returns user and chat info for you or the replied-to message.
|
||||
Alias: ]]..utilities.CMD_PAT..[[who
|
||||
```]]
|
||||
|
||||
function whoami:init()
|
||||
whoami.triggers = utilities.triggers(self.info.username):t('who', true):t('whoami').table
|
||||
function whoami:init(config)
|
||||
whoami.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('who', true):t('whoami').table
|
||||
whoami.doc = [[```
|
||||
Returns user and chat info for you or the replied-to message.
|
||||
Alias: ]]..config.cmd_pat..[[who
|
||||
```]]
|
||||
end
|
||||
|
||||
function whoami:action(msg)
|
||||
|
@ -6,14 +6,14 @@ local JSON = require('dkjson')
|
||||
local utilities = require('utilities')
|
||||
|
||||
wikipedia.command = 'wikipedia <query>'
|
||||
wikipedia.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[wikipedia <query>
|
||||
Returns an article from Wikipedia.
|
||||
Aliases: ]]..utilities.CMD_PAT..[[w, ]]..utilities.CMD_PAT..[[wiki
|
||||
```]]
|
||||
|
||||
function wikipedia:init()
|
||||
wikipedia.triggers = utilities.triggers(self.info.username):t('wikipedia', true):t('wiki', true):t('w', true).table
|
||||
function wikipedia:init(config)
|
||||
wikipedia.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('wikipedia', true):t('wiki', true):t('w', true).table
|
||||
wikipedia.doc = [[```
|
||||
]]..config.cmd_pat..[[wikipedia <query>
|
||||
Returns an article from Wikipedia.
|
||||
Aliases: ]]..config.cmd_pat..[[w, ]]..config.cmd_pat..[[wiki
|
||||
```]]
|
||||
end
|
||||
|
||||
local get_title = function(search)
|
||||
|
@ -5,13 +5,13 @@ local JSON = require('dkjson')
|
||||
local utilities = require('utilities')
|
||||
|
||||
xkcd.command = 'xkcd [i]'
|
||||
xkcd.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[xkcd [i]
|
||||
|
||||
function xkcd:init(config)
|
||||
xkcd.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('xkcd', true).table
|
||||
xkcd.doc = [[```
|
||||
]]..config.cmd_pat..[[xkcd [i]
|
||||
Returns the latest xkcd strip and its alt text. If a number is given, returns that number strip. If "r" is passed in place of a number, returns a random strip.
|
||||
```]]
|
||||
|
||||
function xkcd:init()
|
||||
xkcd.triggers = utilities.triggers(self.info.username):t('xkcd', true).table
|
||||
end
|
||||
|
||||
function xkcd:action(msg, config)
|
||||
|
@ -14,15 +14,15 @@ function youtube:init(config)
|
||||
return
|
||||
end
|
||||
|
||||
youtube.triggers = utilities.triggers(self.info.username):t('youtube', true):t('yt', true).table
|
||||
youtube.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('youtube', true):t('yt', true).table
|
||||
youtube.doc = [[```
|
||||
]]..config.cmd_pat..[[youtube <query>
|
||||
Returns the top result from YouTube.
|
||||
Alias: ]]..config.cmd_pat..[[yt
|
||||
```]]
|
||||
end
|
||||
|
||||
youtube.command = 'youtube <query>'
|
||||
youtube.doc = [[```
|
||||
]]..utilities.CMD_PAT..[[youtube <query>
|
||||
Returns the top result from YouTube.
|
||||
Alias: ]]..utilities.CMD_PAT..[[yt
|
||||
```]]
|
||||
|
||||
function youtube:action(msg, config)
|
||||
|
||||
|
Reference in New Issue
Block a user