--
-- Конфигурация к [[Модуль:Autosorting]]
--
local config = {
-- Пресеты настроек, указываемые в вызывающем шаблоне. Настроки берутся
-- по умолчанию дефолтные, но могут быть указаны индивидуально для каждого пресета
--
-- prefix, postfix, sep, innersep, lbracket, rbracket - фрагменты имени категории
-- итоговое имя категории будет иметь вид:
-- <prefix>[<lbracket><str1>[<sep><str2>[...]<sep><strN>]<rbracket>]<postfix>
-- где str1..strN - строки, обычно в формате 'keyN:valueN', например 'тип:человек',
-- разделенные сепаратором innersep.
--
-- namespace - таблица с номерами ПИ, в которых будут ставиться категории. Если значение
-- пустое или nil, то все. Если {}, то нигде (пресет отключен)
--
-- allowred - отключить проверку существования категории (true/false)
-- rules - идентификаторы правил, описанных ниже
schema = {},
options = {
-- ignoreNSChecks = true,
nocatParamName = 'nocat',
fromParamName = 'from',
},
presets = {
['testpreset'] = {
filters = { -- эти фильтры обрабатываются на уровне пресета
{ id = 'namespace-is',
options = { namespaces = {0, 1, 2, }, },
},
},
rules = { 'category-test-rule', },
},
['страницы на КУЛ'] = {
prefix = 'Википедия:Страницы на КУЛ',
filters = {
{ id = 'namespace-is',
options = { namespaces = {0, }, },
},
},
rules = {
'cat-no-entity',
'sort-type-occupation',
'sort-country',
'sort-ate',
'nonexistingrule',
},
},
['страницы на КУ'] = {
prefix = 'Википедия:Страницы на КУ',
rules = {
'cat-no-entity',
'sort-type-occupation',
'sort-country',
'sort-ate',
},
},
['страницы на КПМ'] = {
prefix = 'Википедия:Страницы на КПМ',
rules = {
'cat-no-entity',
'sort-type-occupation',
'sort-country',
'sort-ate',
},
},
['изолированные статьи'] = {
prefix = 'Википедия:Изолированные статьи',
filters = {
{ id = 'namespace-is',
options = { namespaces = {0, } },
},
},
rules = {
'cat-no-entity',
'sort-type-occupation',
'sort-country',
'sort-ate',
},
},
['статьи без источников'] = {
prefix = 'Википедия:Статьи без источников',
filters = {
{ id = 'namespace-is',
options = { namespaces = {0, }, },
},
},
rules = {
'cat-no-entity',
'sort-type-occupation',
'sort-country',
'sort-ate',
},
},
['статьи без изображений'] = {
prefix = 'Википедия:Статьи без изображений',
filters = {
{ id = 'namespace-is',
options = { namespaces = {0, }, },
},
},
rules = {
'cat-no-entity',
'cat-commons-files-no-wd',
'cat-nofiles-on-property',
'sort-files-type-occupation',
'sort-files-country',
'sort-files-ate',
},
},
-- используется при пустых значениях в настройках пресетов.
-- Если для пресета задано значение, соответствующее дефолтное значение игнорируется
default = {
prefix = 'Википедия:Страницы с автосортировкой',
postfix = '',
lbracket = ' (',
rbracket = ')',
sep = '; ',
innersep = ': ',
allowred = false,
rules = {},
},
},
-- Описания правил обработки
-- func - название вызываемой функции-обработчика. Остальное - ее настройки.
rules = {
['category-test-rule'] = {
func = '_category',
options = {
category = 'Тестовая категория',
},
},
['cat-no-entity'] = {
func = '_catNoEntity',
options = {
category = 'Википедия:Страницы без сущности в Викиданных',
forceNS0 = true,
},
},
['sort-type-occupation'] = {
func = '_sortByProperty',
filters = {},
options = {
property = 'P31',
propLabel = 'тип',
propDefPar = 'default-type',
noValueLabel = 'не указан',
noVaidCatLabel = 'не распределённые по типам',
noVaidCatPropLabel = '',
noValueSortByProp = true,
noVaidCatSortByProp = true,
thenByOnPropVal = 'Q5',
thenBy = {
property = 'P106',
propLabel = 'род занятий',
propDefPar = 'default-occupation',
noValuePropLabel = '',
noValueLabel = '',
noVaidCatLabel = 'не распределён',
},
},
},
['sort-country'] = {
func = '_sortByProperty',
options = {
property = 'P17',
propLabel = 'страна',
propDefPar = 'default-country',
},
},
['sort-ate'] = {
func = '_sortByProperty',
options = {
property = 'P131',
propLabel = 'АТЕ',
propDefPar = 'default-ate',
},
},
['cat-commons-files-no-wd'] = {
func = '_catLocalFileWithoutWD',
options = {
categoryName = 'Википедия:Статьи с изображениями: заполнить свойство %s в Викиданных',
defaultImageProperty = 'P18',
imagePropertiesParameter = 'uses',
commonsCatPropery = 'P373',
},
},
['cat-nofiles-on-property'] = {
func = '_catByProperty',
options = {
property = {'P18', 'P242', 'P373'},
categoryName = 'Википедия:Статьи без изображений (указано в Викиданных: %s)',
ifEmptyPar = 1,
ifEmptyPropsDef = 'P18',
ifEmptyPropsPar = 'uses',
},
},
['sort-files-type-occupation'] = {
func = '_sortByProperty',
filters = {
{ id = 'parameter-is-empty', options = { param = 1 }, },
{ id = 'property-is-empty', options = { property = 'P18' }, },
},
options = {
property = 'P31',
propLabel = 'тип',
ifEmptyPropsPar = 'uses',
propDefPar = 'default-type',
noValueLabel = 'не указан',
noVaidCatLabel = 'не распределённые по типам',
noVaidCatPropLabel = '',
noValueSortByProp = true,
noVaidCatSortByProp = true,
thenByOnPropVal = 'Q5',
thenBy = {
property = 'P106',
propLabel = 'род занятий',
propDefPar = 'default-occupation',
noValuePropLabel = '',
noValueLabel = '',
noVaidCatLabel = 'не распределён',
},
},
},
['sort-files-country'] = {
func = '_sortByProperty',
options = {
property = 'P17',
propLabel = 'страна',
ifEmptyPar = 1,
ifEmptyProps = 'P18',
ifEmptyPropsPar = 'uses',
propDefPar = 'default-country',
},
},
['sort-files-ate'] = {
func = '_sortByProperty',
options = {
property = 'P131',
propLabel = 'АТЕ',
ifEmptyPar = 1,
ifEmptyProps = 'P18',
ifEmptyPropsPar = 'uses',
propDefPar = 'default-ate',
},
},
},
workers = {
['category'] = {
['module'] = 'Песочница/Abiyoyo/Autosorting/workers',
['function'] = 'category',
['description'] = [[Adds a predefined category. Just it.]],
['config-options-schema'] = {},
},
['sort-by-properties'] = {
['module'] = nil,
['function'] = '_sortByProperty',
['description'] = [[Categorize by properties' values with
multilelevel recursion]],
['config-options-schema'] = {},
},
['cat-no-entity'] = {
['worker-module'] = nil,
['worker-function'] = '_catNoEntity',
['description'] = 'Add category if no entity exists for page',
['config-options-schema'] = {},
},
['cat-by-property'] = {
['worker-module'] = nil,
['worker-function'] = '_catByProperty',
['description'] = 'Add category if any statement for property exists',
['config-options-schema'] = {},
},
['cat-file-no-wd'] = {
['worker-module'] = nil,
['worker-function'] = '_catLocalFileWithoutWD',
['description'] = [[Add category if file is availiable on commons
and has no corresponding statement in WD]],
['config-options-schema'] = {},
},
},
-- ограничения на размер создаваемых категорий снизу
-- (категория создается, если ее размер не менее указанного значения).
-- Сейчас не используется.
limits = {
P31 = { -- type
['страницы на КУЛ'] = 7,
['страницы на КУ'] = 7,
['страницы на КПМ'] = 7,
['изолированные статьи'] = 7,
['статьи без источников'] = 7,
['статьи без изображений'] = 21,
default = -1,
},
P17 = { -- country
default = 300,
},
P131 = { -- region
['страницы на КУЛ'] = 7,
['страницы на КУ'] = 7,
['страницы на КПМ'] = 7,
['изолированные статьи'] = 7,
['статьи без источников'] = 7,
['статьи без изображений'] = 7,
default = -1,
},
},
}
config.limits.P106 = config.limits.P31 -- occupation = type
return config