Модуль:Тест

Материал из Кадровый состав НКВД 1935-1939
Перейти к навигации Перейти к поиску

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

local p = {}
local global = mw.ext.luaglobal;
local cargo = mw.ext.cargo;


function p.Titi( frame )
	return frame:getParent():getTitle().text .. '///' .. mw.title.new(frame:getParent():getTitle(), '') .text
end

local ranks = require( 'Модуль:Звания' )

function p.RanksEnum( frame )
	out = {}
	for rank, rankv in pairs( ranks ) do
		if not rankv.redirect then
			if rankv.diap then
				diap = rankv.diap
			else
				diap = { { '1901-01-01', '' } }
			end
			diap[#diap+1] = { '2222-01-01', '' }
			for da, va in ipairs( diap ) do
				if da == #diap then
					break
				end
				query = frame:callParserFunction{ name = '#cargo_query', args = { '',
					tables = 'ranks_journal',
					where = 'rank="' .. rank .. '" AND rankDate >= "' .. va[1] .. '" AND rankDate < "' .. diap[da+1][1] .. '"',
			--		fields   = 'tdistinct, rankDate, _pageName, reference, cancel, rank, oldRank',
					fields   = 'COUNT(person)=rCounter',
					['group_by'] = 'person',
					format = 'native',
					} }
				query = mw.ext.cargo.get()
				if query and query[1].rCounter  ~= '0' then
					out[#out+1] = rank .. va[2] .. ': ' .. query[1].rCounter
				end
			end
		end
	end
	return table.concat( out, '\n\n' )
end

function p.checkOffset( frame )
				query = frame:callParserFunction{ name = '#cargo_query', args = { '',
					tables = 'ranks_journal',
					where = 'rank="сержант ГБ"',
			--		fields   = 'tdistinct, rankDate, _pageName, reference, cancel, rank, oldRank',
					fields   = 'person',
					['group_by'] = 'person',
					['order_by'] = 'person',
					limit = 200000,
					format = 'native',
					} }
				query = mw.ext.cargo.get()
				if query then
					out = query[5000]['person'] .. ' # ' .. #query
				else
					out = 'ooops'
				end
				return out
end

function p.Main(frame)
	zz = cargo.get()
	xx={ ['12']='str', [12]='int'}
	global.set('types', xx)
	yy = global.get('types')
	
	a, b = pcall( mw.ustring.match, 'увол. по ст.38В вовсе с исключением с учета', '^увол%. ?по ст%. ?(%d%d[АБВГД]?) вовсе с исключением с учета$' ) 
	c, d = pcall( ustring.match, 'увол. по ст.38В вовсе с исключением с учета', '^увол%. ?по ст%. ?(%d%d[АБВГД]?) вовсе с исключением с учета$' ) 
	return (tostring(a) or '(-)') .. ' ' .. (b or '(-)') .. ' ' .. (tostring(c) or '(-)') .. ' ' .. (d or '(-)')
end
p[''] = function (frame)
		return '2222222'
	end
	
return p