Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Модуль:ICCup entity count

Материал из wiki.iccup.org

Для документации этого модуля может быть создана страница Модуль:ICCup entity count/doc

local Arguments = require('Module:Arguments')

local EntityCounter = {}

function EntityCounter.count(frame)
    return EntityCounter._count(Arguments.getArgs(frame))
end

function EntityCounter._count(args)
    local tableName = "Heroes"  -- Таблица Cargo
    local queryFields = args.fields or "*"  -- Укажите, какие поля нужно запросить, по умолчанию - все поля
    local conditions = args.conditions  -- Условия запроса

    -- Проверяем наличие условий и формируем строку запроса
    local whereClause = ""
    if conditions then
        whereClause = "WHERE " .. conditions
    end

    -- Выполняем запрос через cargo_query
    local res = mw.ext.cargo.query(
        tableName,
        queryFields,
        whereClause,
        "LIMIT 1",  -- Ограничиваем до одной записи, так как мы считаем количество
        "format=count"
    )

    -- Проверяем результат и возвращаем количество записей
    if type(res) == 'table' and res[1] then
        return res[1]
    else
        error("Ошибка при выполнении запроса: " .. tostring(res))
    end
end

return EntityCounter