Moduł:Sandbox/Draco flavus/quicktest

Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Sandbox/Draco flavus/quicktest/opis

p={}

function p.test(frame)
	local ms = ''
	ms = k(frame.args[1])
	return ms
end

function p.tekststrony(frame)
	local ms
	ms = mw.title.makeTitle('User', 'Draco flavus/brudnopis179'):getContent()
	return ms
	
end
function p.tekststrony2(frame)
	local ms = ''
	ms = mw.title.makeTitle('Index', frame.args[1]):getContent()
	ms = ms:gsub('^.*\n|Strony=(.*)\n|Spis treści=.*$', '%1')
	return ms
end
function p.tekststrony3(frame)
	local ms = ''
	ms = mw.title.makeTitle(frame.args[1],frame.args[2]):getContent()
    ms = ms:gsub(']]', ']]')
    ms = ms:gsub("''", '''')
    ms = ms:gsub('}}', '}}')
	ms = ms:gsub('.-<pre><nowiki>(.-)</nowiki></pre>.*', '%1')
	ms = ms:gsub('⟅ *pages(.-)/⟆', '%1')
	return ms
end
function p.tekststrony4(frame)
	local ms
	ms = mw.title.makeTitle(frame.args[1],frame.args[2]):getContent()
	return ms
end
local HighRomans = {
    { 1000, 'M' },
    { 900, 'CM' }, { 500, 'D' }, { 400, 'CD' }, { 100, 'C' },
    {  90, 'XC' }, {  50, 'L' }, {  40, 'XL' }, {  10, 'X' },
    {   9, 'IX' }, {   5, 'V' }, {   4, 'IV' }, {   1, 'I' }
}
local Romans = {
    { 1000, 'm' },
    { 900, 'cm' }, { 500, 'd' }, { 400, 'cd' }, { 100, 'c' },
    {  90, 'xc' }, {  50, 'l' }, {  40, 'xl' }, {  10, 'x' },
    {   9, 'ix' }, {   5, 'v' }, {   4, 'iv' }, {   1, 'i' }
}


local function ToHighRoman(num)
    local ret = {}
    for _, v in ipairs(HighRomans) do
        local val, letter = unpack(v)
        while num >= val do
            num = num - val
            table.insert(ret, letter)
        end
    end
    return table.concat(ret)
end

local function ToRoman(num)
    local ret = {}
    for _, v in ipairs(Romans) do
        local val, letter = unpack(v)
        while num >= val do
            num = num - val
            table.insert(ret, letter)
        end
    end
    return table.concat(ret)
end
function informat(p, q)
	local strona = tonumber(p)
	local aspekt = q
	local Y = ''
	if aspekt == "normal" then
		Y = tostring(strona)
	elseif aspekt == "roman" then
		Y = ToRoman(strona)
	elseif aspekt == "highroman" then
		Y = ToHighRoman(strona)
	elseif aspekt == "folio" then
		Y = tostring((strona + strona % 2) / 2) .. ((strona % 2 == 0) and 'ᵛ' or 'ʳ')
	elseif aspekt == "folioroman" then
		Y = ToRoman((strona + strona % 2) / 2) .. ((strona % 2 == 0) and 'ᵛ' or 'ʳ')
	elseif aspekt == "foliohighroman" then
		Y = ToHighRoman((strona + strona % 2) / 2) .. ((strona % 2 == 0) and 'ᵛ' or 'ʳ')
	else
		Y = aspekt
	end
	return Y
end


local function pages_from_index(arg)
	local index_typ = false
	local index_strony = {}
	local index_etykiety = {}
	local itxt = ''
	local test_abc = ''
	local maximal
	local t_arg = {}
	local i
	local j
	local numeracja = {}
	local etykiety = {}
	local a1
	local a2
	local a3
	local w
	
	itxt = mw.title.makeTitle('Indeks', arg):getContent()                       -- tekst strony indeksowej
	itxt = itxt:gsub('^.*\n|Strony=(.*)\n|Spis treści=.*$', '%1')		        -- tylko fragment z linkami do stron
	if itxt:find("<pagelist[/ ]") then
		-- nowy typ
		index_typ = true
		local title = mw.title.new('File:' .. arg)
		maximal = #title.file.pages
	else
		maximal = -1
	end
	return maximal
end

function p.drukuj(frame)
	local strony={}
	local etykiety={}
	local typ
	--strony, etykiety, typ = pages_from_index(frame.args[1])
	--return table.concat(strony, ", ") .. '\n\n' .. table.concat(etykiety, ", ") 
	typ = pages_from_index(frame.args[1])
	return typ
end


return p