Модуль:DFdlC
ХӀокху модулах лаьцна хааман Модуль:DFdlC/doc агӀо кхолла мега
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 .. ']  // ';
end
end
local paginas;
if (string.len(paginastr) >= 1) then
paginas = '— P. ' .. paginastr .. '';
else
paginas = '— 187, [101] p';
end
-- Сам вывод
table.insert(str, partelink);
table.insert(str, '' .. titulo .. ' : ' .. lang .. ' :  [' )
table.insert(str, archivelink);
table.insert(str, ' ' .. archivedate .. ']. — ' .. lugar .. ', ' .. ano .. '. ' .. paginas .. '.');
return table.concat(str)
end
return p;