Модуль:Песочница/Jaguar K

Материал из Википедии — свободной энциклопедии
< Модуль:Песочница
Перейти к навигации Перейти к поиску
Документация
Это подстраница личной песочницы участника Jaguar K
local p = {} 

function p.main( frame )
local args=frame:getParent().args a=args[1] or "" b="|азербайджанка|башкирка|белоруска|марийка|чувашка|немка|гречанка|англичанка|испанка|эстонка|басконка|финка|француженка|еврейка|армянка|японка|грузинка|казашка|лезгинка|литовка|латышка|полячка|румынка|цыганка|русская|славянка|сербка|татарка|украинка|американка|узбечка|китаянка|аргынка|казачка|крымская татарка|" c="" r="|" d=""
local x=args["гендер"] or args["gender"] or args["sex"] or args["пол"] or args[2] or ""
if x~="" then d=frame:expandTemplate{ title = 'gender switch', args = { x, '1', '0' } } end
if a~="" then if mw.ustring.find(b, r..mw.ustring.lower(a)..r,_, plain) then c="itsstring" end end
if d=="1" then c="itsstring" end
return c
end

function p.main3( frame )
local args=frame:getParent().args a=args[1] or nil b="|азербайджанка|башкирка|белоруска|марийка|чувашка|немка|гречанка|англичанка|испанка|эстонка|басконка|финка|француженка|еврейка|армянка|японка|грузинка|казашка|лезгинка|литовка|латышка|полячка|румынка|цыганка|русская|славянка|сербка|татарка|украинка|американка|узбечка|китаянка|аргынка|казачка|крымская татарка|" c="" r="|" d=""
local x=args["гендер"] or args["gender"] or args["sex"] or args["пол"] or args[2] or nil
if x then d=frame:expandTemplate{ title = 'gender switch', args = { x, '1', '0' } } end
if a then if mw.ustring.find(b, r..mw.ustring.lower(a)..r,_, plain) then c="itsstring" end end
if d=="1" then c="itsstring" end
return c
end

function p.ret( frame )
local a=frame.args[1] 
return a
end

function p.ret2( frame )
local a=frame.args[1] c="поль|немка|гречанка|паль"
if a then c=c..a end
return c
end

function p.gender( frame )
return frame:expandTemplate{ title = 'gender switch', args = { frame.args[1], '1', '0' } }
end

function p.flag( frame )
local d="de немец немка" dd="Coat of arms of Germany.svg" f=""
if mw.ustring.find(d, frame.args[1],_, plain) then f=dd end
return f
end

function p.wiki( frame )
local d="de немец немка" dd="Немцы|" f=""
if mw.ustring.find(d, frame.args[1],_, plain) then f=dd end
if p.main(frame) == "" then f=f.."немец" else  f=f.."немка" end
return f 
end
 
function p.indent( frame )
local d="</dd></dl>" f="" v= {} i=1 v[0]=d x=frame.args[1] c=tonumber(x) 
while i<33 do v[i]=v[i-1]..d i=i+1 end
if c then f=v[c-1] else f=v[#x-1] end
return f
end 

function p.osdate( frame )
	local x=frame.args[1]
	return os.date(x)
end

function p.date( frame )
	local x=frame.args[1] -- y=mw.language.new("ru")
	return mw.getContentLanguage():formatDate(x)
end

function p.recintro ( frame )
	return "<charinsert><nowiki>{{Рецензирование| Название статьи | Статус | {{subst:REVISIONUSER}} | "..mw.getContentLanguage():formatDate('d.m.Y').." |режим={{{режим|}}}}}</nowiki></charinsert>"
end 


function p.main2 (frame)
	local arg1 = mw.ustring.gsub(frame:getParent().args[1] or '', '\226\128\142', '') -- invisible &lrm; mark
	local arg2 = mw.ustring.gsub(frame:getParent().args[2] or '', '\226\128\142', '') -- invisible &lrm; mark
	
	local agent, moment
	if arg2 == nil or arg2 == '' then
		agent = arg1
	else
		if mw.ustring.match(arg1, '[0-9]+ [а-я]+ 20[0-9]+') then
			agent = arg2
			moment = arg1
		else
			agent = arg1
			moment = arg2
		end
		moment = mw.text.trim(moment)		
	end
	agent = mw.text.trim(agent)
	if agent == nil or agent == '' then
		return '<span class="error">Unsigned: введены некорректные параметры</span>'
	end
	
	local res = '<small class="autosigned"> —&nbsp;\'\'Эта [[ВП:Подписывайтесь на страницах обсуждения|реплика]] добавлена '
	
	if mw.ustring.match(agent, '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$')
			or mw.ustring.match(agent, '^[0-9a-fA-F]+:[0-9a-fA-F]+:[0-9a-fA-F]+:[0-9a-fA-F]+$') 
			or mw.ustring.match(agent, '^[0-9a-fA-F]+:[0-9a-fA-F]+:[0-9a-fA-F]+:[0-9a-fA-F]+:[0-9a-fA-F]+:[0-9a-fA-F]+:[0-9a-fA-F]+:[0-9a-fA-F]+$') then
		res = res .. 'с IP [[Special:Contributions/' .. agent .. '|' .. agent .. ']] ({{фиттс|User talk:' .. agent .. '|о}})'
	else
		res = res .. 'участником [[User:' .. agent .. '|' .. agent .. ']] ({{фиттс|User talk:'
			.. agent .. '|о}} • {{фиттс|Special:Contributions/' .. agent .. '|в}})'
	end
	
	if moment ~= nil and moment ~= '' then
		if not mw.ustring.match(moment, '(UTC)') then
			moment = moment .. '&#32;(UTC)'-- два пробела ломают «Инструменты обсуждения»
		end
		res = res .. ' ' .. moment 
	end
	
	res = res .. '\'\'</small>'
	return frame:preprocess(res)
end

return p