Дополнительные действия
Для документации этого модуля может быть создана страница Модуль: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" -- Таблица Cargo
local queryFields = args.fields or "*" -- Укажите, какие поля нужно запросить, по умолчанию - все поля
local conditions = args.conditions or "" -- Условия запроса
-- Проверяем наличие условий и формируем строку запроса
if conditions == "" then
error("Условия не заданы.")
end
mw.log("Таблица: " .. tableName)
mw.log("Поля: " .. queryFields)
mw.log("Условия: " .. conditions)
-- Выполняем запрос через cargo.query
local res = mw.ext.cargo.query(
tableName,
queryFields,
{
limit = 1, -- Без условий, просто запрос первой строки
format = "count"
}
)
-- Отладка: проверяем, что возвращает запрос
mw.logObject(res) -- выводим таблицу для отладки
-- Если результат — таблица, проверяем ее содержимое
if type(res) == 'table' then
for k, v in pairs(res) do
mw.log(k, v) -- выводим ключи и значения из таблицы
end
-- Попробуем вернуть первый элемент, если он существует
if res[1] then
return res[1]
else
return "Таблица возвращена, но пустая."
end
else
-- Если результат не таблица, просто возвращаем результат
return res
end
end
return EntityCounter