Модуль:Песочница/Abiyoyo/Autosorting: различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
Содержимое удалено Содержимое добавлено
Abiyoyo (обсуждение | вклад) Нет описания правки |
Abiyoyo (обсуждение | вклад) Нет описания правки |
||
Строка 93:
default = function() return true end,
}
--- Вызывает один за другим фильтры из массива filters▼
-- Если фильтров нет или что-то сконфигурировано неверно, возвращает true▼
-- Если хотя бы один из фильтров отработал и выдал false, возвращает false▼
-- Если все фильтры вернули true, возвращает true▼
-- @function processFilters▼
-- @param filtMap таблица-список фильтров вида {<filterID> = <func>, ...}▼
-- @param filters массив с фильтрами вида▼
-- { {name = <filterID>, options = {<opt1> = val1, ... } ... }▼
-- @param frameArgs таблица с параметрами фрейма▼
-- @return true если все фильтры вернули true или проблемы с параметрами▼
-- false если хотя бы один вернул false▼
local function processFilters(filtMap, filters, frameArgs)▼
debLog:write('invoked ', 'processFilters')▼
if type(filtMap) ~= 'table' then return true end▼
if type(filters) ~= 'table' then return true end▼
local function default() return true end▼
for i, filter in ipairs(filters) do▼
debLog:write('processing name: '.. tostring(filter.id), 'processFilters')▼
local filterFunc = filtMap[filter.id] or filtMap[default] or default▼
if not filterFunc(filter.options, frameArgs) then▼
return false▼
end▼
end▼
return true▼
end▼
--------------------------------------------------------------------------------
Строка 784 ⟶ 755 :
return nil, 'Preset is empty'
end
▲--- Вызывает один за другим фильтры из массива filters
▲-- Если фильтров нет или что-то сконфигурировано неверно, возвращает true
▲-- Если хотя бы один из фильтров отработал и выдал false, возвращает false
▲-- Если все фильтры вернули true, возвращает true
▲-- @function processFilters
▲-- @param filtMap таблица-список фильтров вида {<filterID> = <func>, ...}
▲-- @param filters массив с фильтрами вида
▲-- { {name = <filterID>, options = {<opt1> = val1, ... } ... }
▲-- @param frameArgs таблица с параметрами фрейма
▲-- @return true если все фильтры вернули true или проблемы с параметрами
▲-- false если хотя бы один вернул false
▲local function processFilters(filtMap, filters, frameArgs)
▲ debLog:write('invoked ', 'processFilters')
▲ if type(filtMap) ~= 'table' then return true end
▲ if type(filters) ~= 'table' then return true end
▲ local function default() return true end
▲ for i, filter in ipairs(filters) do
▲ debLog:write('processing name: '.. tostring(filter.id), 'processFilters')
▲ local filterFunc = filtMap[filter.id] or filtMap[default] or default
▲ if not filterFunc(filter.options, frameArgs) then
▲ return false
▲ end
▲ end
▲ return true
▲end
-- check page against preset filters
|