administration.lua 1.13.2 - /desc can now be used with a query.
remind.lua - Now accepts repled-to message text as reminder.
This commit is contained in:
		@@ -108,14 +108,14 @@ function drua.message(target, text, s)
 | 
			
		||||
    text = escape(text)
 | 
			
		||||
    local command = 'msg %s "%s"'
 | 
			
		||||
    command = command:format(target, text)
 | 
			
		||||
    return drua.send(command, _, s)
 | 
			
		||||
    return drua.send(command, nil, s)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function drua.send_photo(target, photo, s)
 | 
			
		||||
    target = format_target(target)
 | 
			
		||||
    local command = 'send_photo %s %s'
 | 
			
		||||
    command = command:format(target, photo)
 | 
			
		||||
    return drua.send(command, _, s)
 | 
			
		||||
    return drua.send(command, nil, s)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function drua.add_user(chat, target, s)
 | 
			
		||||
@@ -123,24 +123,24 @@ function drua.add_user(chat, target, s)
 | 
			
		||||
    chat, a = format_target(chat)
 | 
			
		||||
    target = format_target(target)
 | 
			
		||||
    local command = comtab.add[a]:format(chat, target)
 | 
			
		||||
    return drua.send(command, _, s)
 | 
			
		||||
    return drua.send(command, nil, s)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function drua.kick_user(chat, target, s)
 | 
			
		||||
    -- Get the group info so tg will recognize the target.
 | 
			
		||||
    drua.get_info(chat, _, s)
 | 
			
		||||
    drua.get_info(chat, nil, s)
 | 
			
		||||
    local a
 | 
			
		||||
    chat, a = format_target(chat)
 | 
			
		||||
    target = format_target(target)
 | 
			
		||||
    local command = comtab.kick[a]:format(chat, target)
 | 
			
		||||
    return drua.send(command, _, s)
 | 
			
		||||
    return drua.send(command, nil, s)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function drua.rename_chat(chat, name, s)
 | 
			
		||||
    local a
 | 
			
		||||
    chat, a = format_target(chat)
 | 
			
		||||
    local command = comtab.rename[a]:format(chat, name)
 | 
			
		||||
    return drua.send(command, _, s)
 | 
			
		||||
    return drua.send(command, nil, s)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function drua.export_link(chat, s)
 | 
			
		||||
@@ -166,7 +166,7 @@ function drua.set_photo(chat, photo, s)
 | 
			
		||||
    local a
 | 
			
		||||
    chat, a = format_target(chat)
 | 
			
		||||
    local command = comtab.photo_set[a]:format(chat, photo)
 | 
			
		||||
    return drua.send(command, _, s)
 | 
			
		||||
    return drua.send(command, nil, s)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function drua.get_info(target, s)
 | 
			
		||||
@@ -181,7 +181,7 @@ function drua.channel_set_admin(chat, user, rank, s)
 | 
			
		||||
    user = format_target(user)
 | 
			
		||||
    local command = 'channel_set_admin %s %s %s'
 | 
			
		||||
    command = command:format(chat, user, rank)
 | 
			
		||||
    return drua.send(command, _, s)
 | 
			
		||||
    return drua.send(command, nil, s)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function drua.channel_set_about(chat, text, s)
 | 
			
		||||
@@ -189,15 +189,15 @@ function drua.channel_set_about(chat, text, s)
 | 
			
		||||
    text = escape(text)
 | 
			
		||||
    local command = 'channel_set_about %s "%s"'
 | 
			
		||||
    command = command:format(chat, text)
 | 
			
		||||
    return drua.send(command, _, s)
 | 
			
		||||
    return drua.send(command, nil, s)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function drua.block(user, s)
 | 
			
		||||
    return drua.send('block_user user#' .. user, _, s)
 | 
			
		||||
    return drua.send('block_user user#' .. user, nil, s)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function drua.unblock(user, s)
 | 
			
		||||
    return drua.send('unblock_user user#' .. user, _, s)
 | 
			
		||||
    return drua.send('unblock_user user#' .. user, nil, s)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
return drua
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
--[[
 | 
			
		||||
    administration.lua, version 1.13.1
 | 
			
		||||
    administration.lua, version 1.13.2
 | 
			
		||||
    This plugin provides self-hosted, single-realm group administration.
 | 
			
		||||
    It requires tg (http://github.com/vysheng/tg) with supergroup support.
 | 
			
		||||
    For more documentation, read the the manual (otou.to/rtfm).
 | 
			
		||||
@@ -34,6 +34,8 @@
 | 
			
		||||
     modrights, to give moderators access to changing the group photo, title,
 | 
			
		||||
     link, and motd (config option is deprecated. RIP). /unban will reset the
 | 
			
		||||
     target's autokick counter. Added configuration for default flag settings.
 | 
			
		||||
 | 
			
		||||
    1.13.2 - /desc can now be used with a query.
 | 
			
		||||
]]--
 | 
			
		||||
 | 
			
		||||
local drua = require('otouto.drua-tg')
 | 
			
		||||
@@ -715,19 +717,34 @@ function administration.init_command(self_, config_)
 | 
			
		||||
                end
 | 
			
		||||
                utilities.send_message(msg.chat.id, output, true, nil, true)
 | 
			
		||||
            end
 | 
			
		||||
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        { -- /desc
 | 
			
		||||
            triggers = utilities.triggers(self_.info.username, config_.cmd_pat):t('desc'):t('description').table,
 | 
			
		||||
            triggers = utilities.triggers(self_.info.username, config_.cmd_pat):t('desc', true):t('description', true).table,
 | 
			
		||||
 | 
			
		||||
            command = 'description',
 | 
			
		||||
            privilege = 1,
 | 
			
		||||
            interior = true,
 | 
			
		||||
            interior = false,
 | 
			
		||||
            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, config)
 | 
			
		||||
                local chat = group and tostring(msg.chat.id) or nil
 | 
			
		||||
                local input = utilities.input(msg.text)
 | 
			
		||||
                if input then
 | 
			
		||||
                    for chat_id_str, group_ in pairs(self.database.administration.groups) do
 | 
			
		||||
                        if (not group_.flags[1]) and group_.link then -- no unlisted or unlinked groups
 | 
			
		||||
                            if input == chat_id_str or string.match(group_.name:lower(), input:lower()) then
 | 
			
		||||
                                chat = chat_id_str
 | 
			
		||||
                                break
 | 
			
		||||
                            end
 | 
			
		||||
                        end
 | 
			
		||||
                    end
 | 
			
		||||
                end
 | 
			
		||||
                if not chat then
 | 
			
		||||
                    utilities.send_reply(msg, 'Group not found. Specify a group by name or ID, or use this command without arguments inside an administrated group.')
 | 
			
		||||
                    return
 | 
			
		||||
                end
 | 
			
		||||
                local output = administration.get_desc(self, chat, config)
 | 
			
		||||
                if utilities.send_message(msg.from.id, output, true, nil, true) then
 | 
			
		||||
                    if msg.from.id ~= msg.chat.id then
 | 
			
		||||
                        utilities.send_reply(msg, 'I have sent you the requested information in a private message.')
 | 
			
		||||
 
 | 
			
		||||
@@ -33,8 +33,13 @@ function remind:action(msg, config)
 | 
			
		||||
    elseif duration > config.remind.max_duration then
 | 
			
		||||
        duration = config.remind.max_duration
 | 
			
		||||
    end
 | 
			
		||||
    local message = utilities.input(input)
 | 
			
		||||
    if not message then
 | 
			
		||||
 | 
			
		||||
    local message
 | 
			
		||||
    if msg.reply_to_message and #msg.reply_to_message.text > 0 then
 | 
			
		||||
        message = msg.reply_to_message.text
 | 
			
		||||
    elseif utilities.input(input) then
 | 
			
		||||
        message = utilities.input(input)
 | 
			
		||||
    else
 | 
			
		||||
        utilities.send_reply(msg, remind.doc, true)
 | 
			
		||||
        return
 | 
			
		||||
    end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user