Модуль:ВЛКСМ

Материал из Кадровый состав НКВД 1935-1939
Перейти к навигации Перейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

Для документации этого модуля может быть создана страница Модуль:ВЛКСМ/doc

local pp = {}
local global = mw.ext.luaglobal
local tools = require( 'Модуль:Tools' )

pp.Main = function ( frame )
	local flag = { [''] = 0, ['нет'] = -1, ['б/п'] = -1,
		['член'] = 2, ['да'] = 2, }
	local errorAdvice = 'Используйте формат {{ ВЛКСМ | '
		.. 'член = <var>дата</var> | выбыл = <var>дата</var> | '
		.. 'дополнение = <var>текст</var> | сноска =  <var>текст</var> | '
		.. 'источник = <var>текст</var> }}. Дата выбытия указывается, если '
		.. 'последующего восстановления в ВЛКСМ не было. Используйте формат '
		.. '{{ ВЛКСМ | нет / да  }} для лиц, никогда не состоявших '
		.. 'в комсомоле / для комсомольцев, о которых нет никаких других данных.'
	local errorDateAdvice = 'Используйте формат даты '
		.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
		.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
	local Args, err = tools.checkargs( frame:getParent().args,
		{ 	true, ['член'] = true, ['выбыл'] = true,
			['дополнение'] = true, ['сноска'] = true, ['источник'] = true, } )
	if not Args then
		return tools.errorMsg( 'ВЛКСМ', 'Непредусмотренный параметр ' .. err, errorDateAdvice )
	end
	local tmp = flag[mw.ustring.lower(  Args[1] or ''  )]
	if not tmp then
		return tools.errorMsg( 'ВЛКСМ', 'Некорректное значение параметра', errorAdvice )
	end
	local VLKSM = { ['флаг'] = tmp }
	local dates = { 'член', 'выбыл' }
	for _, x in ipairs( dates ) do
		if Args[x] then
			tmp = tools.parseDate( Args[x], 1898 )
			if not tmp then
				return tools.errorMsg( 'ВЛКСМ',
					'Ошибка в записи даты «' .. x .. '»', errorDateAdvice )
			end
			VLKSM[x] = tmp
		end
	end
	VLKSM['дополнение'], VLKSM['сноска'], VLKSM['источник'] =
		Args['дополнение'], Args['сноска'], Args['источник']
	global.add( 'gVLKSM', VLKSM )
	return '<i></i>'
end

return pp