Модуль:DFdlC

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Документация

Модуль обеспечивает работу шаблона {{DFdlC}}.

Подробнее об использовании шаблона см. его документацию.

local p = {};

require('strict');

function p.render(frame)
   local str = {}
    local pFrame = frame:getParent();
    local args = mw.clone(pFrame.args);
    setmetatable(args, nil);
 
 -- Берутся из шаблона   
    local paginastr;
    paginastr = args[1];
    
  -- Постоянные компоненты вывода
    local archiveurl;
    local archivenombre;
    local archivedate;
    local lang;
    local lugar;
    local ano;
    local titulo;
    local parte;
    local parteurl;

    archiveurl = 'https://web.archive.org/web/20211108012818/https://ceh.cedex.es/Informes/Hidrologia/1965-Datos_fisicos_de_las_corrientes_clasificadas_por_el_CEH/cuencas.pdf';
    archivedate = '8 ноября 2021';
    archivenombre = 'арх.';
    lang = '[исп.]';
    lugar = 'Madrid';
    titulo = 'Datos físicos de las corrientes clasificadas por el Centro de Estudios Hidrográficos';
    ano = '1965';
    
    -- если в строке страниц есть пробелы, тире и др., то обрезаем
    local pagina;
    local paginacruda;
    local indpc;
    indpc = string.find (paginastr, "%D");
    if ((indpc ~= nil) and (indpc >= 2)) then
        paginacruda = string.sub (paginastr, 1, indpc-1);
    else
    if (indpc == 1) then
    	paginacruda = nil;
    else
    	paginacruda = paginastr;
    end;
    end;
    pagina = tonumber(paginacruda);

    -- часть и ссылка на часть
    if (pagina ~= nil) then
    if (1 <= pagina) and (pagina <= 2 ) then
        parte = 'Prólogo';
        parteurl = nil;
    else 
    if (3 <= pagina) and (pagina <= 28) then
        parte = 'I. Confederación Hidrográfica del Norte';
        parteurl = 'https://web.archive.org/web/20211015185343/https://ceh.cedex.es/Informes/Hidrologia/1965-Datos_fisicos_de_las_corrientes_clasificadas_por_el_CEH/01_norte.pdf';
    else 
    if (29 <= pagina) and (pagina <= 49) then
        parte = 'II. Confederación Hidrográfica del Duero';
        parteurl = 'https://web.archive.org/web/20211015185343/https://ceh.cedex.es/Informes/Hidrologia/1965-Datos_fisicos_de_las_corrientes_clasificadas_por_el_CEH/02_duero.pdf';
    else 
    if (50 <= pagina) and (pagina <= 69) then
        parte = 'III. Confederación Hidrográfica del Tajo';
        parteurl = 'https://web.archive.org/web/20211015185343/https://ceh.cedex.es/Informes/Hidrologia/1965-Datos_fisicos_de_las_corrientes_clasificadas_por_el_CEH/03_tajo.pdf';
    else 
    if (70 <= pagina) and (pagina <= 80) then
        parte = 'IV. Confederación Hidrográfica del Guadiana';
        parteurl = 'https://web.archive.org/web/20211015185343/https://ceh.cedex.es/Informes/Hidrologia/1965-Datos_fisicos_de_las_corrientes_clasificadas_por_el_CEH/04_guadiana.pdf';
    else 
    if (81 <= pagina) and (pagina <= 104) then
        parte = 'V. Confederación Hidrográfica del Guadalquivir';
        parteurl = 'https://web.archive.org/web/20211015185343/https://ceh.cedex.es/Informes/Hidrologia/1965-Datos_fisicos_de_las_corrientes_clasificadas_por_el_CEH/05_guadalquivir.pdf';
    else 
    if (105 <= pagina) and (pagina <= 117) then
        parte = 'VI. Confederación Hidrográfica del Sur';
        parteurl = 'https://web.archive.org/web/20211015185343/https://ceh.cedex.es/Informes/Hidrologia/1965-Datos_fisicos_de_las_corrientes_clasificadas_por_el_CEH/06_sur.pdf';
    else 
    if (118 <= pagina) and (pagina <= 122) then
        parte = 'VII. Confederación Hidrográfica del Segura';
        parteurl = 'https://web.archive.org/web/20211015185343/https://ceh.cedex.es/Informes/Hidrologia/1965-Datos_fisicos_de_las_corrientes_clasificadas_por_el_CEH/07_segura.pdf';
    else 
    if (123 <= pagina) and (pagina <= 134) then
        parte = 'VIII. Confederación Hidrográfica del Jucar';
        parteurl = 'https://web.archive.org/web/20211015185343/https://ceh.cedex.es/Informes/Hidrologia/1965-Datos_fisicos_de_las_corrientes_clasificadas_por_el_CEH/08_jucar.pdf';
    else 
    if (135 <= pagina) and (pagina <= 169) then
        parte = 'IX. Confederación Hidrográfica del Ebro';
        parteurl = 'https://web.archive.org/web/20211015185343/https://ceh.cedex.es/Informes/Hidrologia/1965-Datos_fisicos_de_las_corrientes_clasificadas_por_el_CEH/09_ebro.pdf';
    else 
    if (170 <= pagina) and (pagina <= 187) then
        parte = 'X. Confederación Hidrográfica del Pirineo oriental';
        parteurl = 'https://web.archive.org/web/20211015185343/https://ceh.cedex.es/Informes/Hidrologia/1965-Datos_fisicos_de_las_corrientes_clasificadas_por_el_CEH/10_pirineo.pdf';
    else
    	parte = nil;
    	parteurl = nil
    end
    end
    end
    end
    end
    end
    end
    end
    end
    end
    end
    else
    	parte = nil;
    	parteurl = nil
    end
    

  -- Формирование вывода
    -- Формирование ссылки + название
    local archivelink;
        archivelink = '[' .. archiveurl .. ' ' .. archivenombre .. ']';
    
    
    local partelink;
    if (parte == nil) then 
       	partelink = nil;
       	else if (parteurl == nil) then
       		partelink = ''.. parte ..'';
       	else
        partelink = '[' .. parteurl .. ' ' .. parte .. '] &#32;//&#32;';
       	end
    end
   	
   	local paginas;
   	if (string.len(paginastr) >= 1) then
   		paginas = '—&#32;P.&#32;' .. paginastr .. '';
    else
   		paginas = '—&#32;187,&#32;[101]&#32;p';
   	end
    
    -- Сам вывод
    table.insert(str, partelink);
    table.insert(str, '' .. titulo .. '&#32;:&#32;' .. lang .. '&#32;:&#32;	&#91;' )
    table.insert(str, archivelink);
    table.insert(str, '&#32;' .. archivedate .. '&#93;.&#32;—&#32;' .. lugar .. ',&#32;' .. ano .. '.&#32;' .. paginas .. '.');
    
    return table.concat(str)

end

return p;