Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Andreas Bielawski 2016-06-19 12:06:43 +02:00
commit 6abd90c745
3 changed files with 35 additions and 35 deletions

View File

@ -19,11 +19,13 @@ function about:action(msg, config)
local output = config.about_text .. '\nBrawlbot v2, basierend auf Otouto von topkecleon.' local output = config.about_text .. '\nBrawlbot v2, basierend auf Otouto von topkecleon.'
if (msg.new_chat_participant and msg.new_chat_participant.id == self.info.id) if
(msg.new_chat_participant and msg.new_chat_participant.id == self.info.id)
or msg.text_lower:match('^'..config.cmd_pat..'about') 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..'about@'..self.info.username:lower())
or msg.text_lower:match('^'..config.cmd_pat..'start') then or msg.text_lower:match('^'..config.cmd_pat..'start')
utilities.send_message(self, msg.chat.id, output, true) then
utilities.send_message(self, msg.chat.id, output, true, nil, true)
return return
end end

View File

@ -1,6 +1,6 @@
--[[ --[[
administration.lua administration.lua
Version 1.10 Version 1.10.5
Part of the otouto project. Part of the otouto project.
© 2016 topkecleon <drew@otou.to> © 2016 topkecleon <drew@otou.to>
GNU General Public License, version 2 GNU General Public License, version 2
@ -13,19 +13,6 @@
Important notices about updates will be here! Important notices about updates will be here!
1.9 - Added flag antihammer. Groups with antihammer enabled will not be
affected by global bans. However, users who are hammer'd from an anti-
hammer group will also be banned locally. Added autobanning after (default)
3 autokicks. Threshold onfigurable with antiflood. Autokick counters reset
within twenty-four hours. Merged antisquig action into generic. There is no
automatic migration; simply add the following to database.administration:
autokick_timer = 0
groups[*].flags[6] = false
groups[*].autoban = 3
groups[*].autokicks = {}b
1.9.1 - Returned to non-toggled promotions/bans (too many complaints!).
1.10 - Added /ahelp $command support. No migration required. All actions 1.10 - Added /ahelp $command support. No migration required. All actions
have been reworked to be more elegant. Style has been slightly changed (no have been reworked to be more elegant. Style has been slightly changed (no
more weak-looking, italic group names). Added some (but not many) comments. more weak-looking, italic group names). Added some (but not many) comments.
@ -42,6 +29,9 @@
1.10.4 - Kick notifications now include user IDs. Errors are silenced. 1.10.4 - Kick notifications now include user IDs. Errors are silenced.
/flags can now be used with multiple arguments, similar to /gadd. /flags can now be used with multiple arguments, similar to /gadd.
1.10.5 - /groups now supports searching for groups. /setqotd can set a
quoted MOTD.
]]-- ]]--
local JSON = require('dkjson') local JSON = require('dkjson')
@ -489,29 +479,33 @@ function administration.init_command(self_, config)
}, },
{ -- /groups { -- /groups
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('groups').table, triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('groups', true).table,
command = 'groups', command = 'groups \\[query]',
privilege = 1, privilege = 1,
interior = false, interior = false,
doc = 'Returns a list of administrated groups.', doc = 'Returns a list of groups matching the query, or a list of all administrated groups.',
action = function(self, msg, group, config) action = function(self, msg, _, config)
local output = '' local input = utilities.input(msg.text)
for _,v in ipairs(self.database.administration.activity) do local search_res = ''
local grouplist = ''
for i,v in ipairs(self.database.administration.activity) do
local group = self.database.administration.groups[v] local group = self.database.administration.groups[v]
if not group.flags[1] then -- no unlisted groups if (not group.flags[1]) and group.link then -- no unlisted or unlinked groups
if group.link then grouplist = grouplist .. '• [' .. utilities.md_escape(group.name) .. '](' .. group.link .. ')\n'
output = output .. '• [' .. utilities.md_escape(group.name) .. '](' .. group.link .. ')\n' if input and string.match(group.name:lower(), input:lower()) then
else search_res = search_res .. '• [' .. utilities.md_escape(group.name) .. '](' .. group.link .. ')\n'
output = output .. '' .. group.name .. '\n'
end end
end end
end end
if output == '' then local output
output = 'There are currently no listed groups.' if search_res ~= '' then
output = '*Groups matching* _' .. input .. '_ *:*\n' .. search_res
elseif grouplist ~= '' then
output = '*Groups:*\n' .. grouplist
else else
output = '*Groups:*\n' .. output output = 'There are currently no listed groups.'
end end
utilities.send_message(self, msg.chat.id, output, true, nil, true) utilities.send_message(self, msg.chat.id, output, true, nil, true)
end end
@ -771,7 +765,7 @@ function administration.init_command(self_, config)
}, },
{ -- /setmotd { -- /setmotd
triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('setmotd', true).table, triggers = utilities.triggers(self_.info.username, config.cmd_pat):t('setmotd', true):t('setqotd', true).table,
command = 'setmotd <motd>', command = 'setmotd <motd>',
privilege = 2, privilege = 2,
@ -780,15 +774,19 @@ function administration.init_command(self_, config)
action = function(self, msg, group, config) action = function(self, msg, group, config)
local input = utilities.input(msg.text) local input = utilities.input(msg.text)
if not input and msg.reply_to_message and msg.reply_to_message.text:len() > 0 then local quoted = msg.from.name
if msg.reply_to_message and #msg.reply_to_message.text > 0 then
input = msg.reply_to_message.text input = msg.reply_to_message.text
quoted = msg.reply_to_message.from.name
end end
if input then if input then
if input == '--' or input == utilities.char.em_dash then if input == '--' or input == utilities.char.em_dash then
group.motd = nil group.motd = nil
utilities.send_reply(self, msg, 'The MOTD has been cleared.') utilities.send_reply(self, msg, 'The MOTD has been cleared.')
else else
input = utilities.trim(input) if msg.text:match('^/setqotd') then
input = '_' .. utilities.md_escape(input) .. '_\n - ' .. utilities.md_escape(quoted)
end
group.motd = input group.motd = input
local output = '*MOTD for ' .. msg.chat.title .. ':*\n' .. input local output = '*MOTD for ' .. msg.chat.title .. ':*\n' .. input
utilities.send_message(self, msg.chat.id, output, true, nil, true) utilities.send_message(self, msg.chat.id, output, true, nil, true)

View File

@ -47,7 +47,7 @@ function ifttt:do_ifttt_request(key, event, value1, value2, value3)
local res,code = https.request(url) local res,code = https.request(url)
if code ~= 200 then return "*Ein Fehler ist aufgetreten!* Aktion wurde nicht ausgeführt." end if code ~= 200 then return "*Ein Fehler ist aufgetreten!* Aktion wurde nicht ausgeführt." end
return "*Event "..event.." getriggert!*" return "*Event \""..event.."\" getriggert!*"
end end
function ifttt:action(msg, config, matches) function ifttt:action(msg, config, matches)