Дополнительные действия
DarkMuse (обсуждение | вклад) Нет описания правки |
DarkMuse (обсуждение | вклад) Нет описания правки |
||
| Строка 8: | Строка 8: | ||
function EntityCounter._count(args) | function EntityCounter._count(args) | ||
local tableName = "Heroes" -- | local tableName = args.table or "Heroes" -- Имя таблицы передается аргументом, если не указано, используется "Heroes" | ||
local queryFields = args.fields or "*" -- | local queryFields = args.fields or "*" -- Поля для выборки, по умолчанию - все | ||
local conditions = args.conditions -- Условия запроса | local conditions = args.conditions -- Условия запроса | ||
Версия от 21:59, 12 сентября 2024
Для документации этого модуля может быть создана страница Модуль: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 = args.table or "Heroes" -- Имя таблицы передается аргументом, если не указано, используется "Heroes"
local queryFields = args.fields or "*" -- Поля для выборки, по умолчанию - все
local conditions = args.conditions -- Условия запроса
-- Выполняем запрос через cargo.query
local res = mw.ext.cargo.query(
tableName, -- Имя таблицы
queryFields, -- Поля для выборки
{
where = conditions, -- Условия запроса
limit = 1, -- Ограничиваем до одной записи, так как мы считаем количество
format = "count" -- Формат запроса
}
)
-- Проверяем результат и возвращаем количество записей
if type(res) == 'table' and res[1] then
return res[1]
else
error("Ошибка при выполнении запроса: " .. tostring(res))
end
end
return EntityCounter