Модуль:PD-auto/all
Документацію для цього модуля можна створити у Модуль:PD-auto/all/документація
local this = {};
local function generalMessage(authorMode, death, years)
return 'Автор помер у '..death..' році, тому '..(authorMode and 'роботи цього автора' or 'ця робота')..' є в суспільному надбанні в тих країнах, де авторське право'
..' діє протягом \'\'життя автора плюс '..years..' років чи менше\'\'. '..(authorMode and 'Роботи цього автора можуть' or 'Ця робота може')..' бути в суспільному надбанні також у країнах з довшим терміном дії авторського права, '
..'якщо вони застосовують [[w:en:Rule of the shorter term|правило коротшого терміну]] для іноземних робіт.';
end
function this.pd(args)
if not args.author then
return {};
end
local result = {country = 'усьому світі'};
local death = args.death;
local currentYear = os.date('*t').year;
local last_pd_year = currentYear - 95
local timeFromDeath = currentYear - death;
local authorMode = args.authorMode;
result.year = death + 100;
if not authorMode and args.publication < last_pd_year and timeFromDeath > 100 then
result.year = 'PD';
result.reason = 'Цей твір перебуває в суспільному надбанні в усьому світі, тому що він опублікований до 1 січня '.. last_pd_year ..' року і автор помер щонайменше 100 років тому.';
elseif timeFromDeath > 100 then
result.reason = generalMessage(authorMode, death, '100');
elseif timeFromDeath > 99 then
result.reason = generalMessage(authorMode, death, '99');
elseif timeFromDeath > 80 then
result.reason = generalMessage(authorMode, death, '80');
elseif timeFromDeath > 75 then
result.reason = generalMessage(authorMode, death, '75');
elseif timeFromDeath > 70 then
result.reason = generalMessage(authorMode, death, '70');
elseif timeFromDeath > 60 then
result.reason = generalMessage(authorMode, death, '60');
elseif timeFromDeath > 50 then
result.reason = generalMessage(authorMode, death, '50');
elseif authorMode then
result.reason = 'Твори цього автора захищені авторським правом у більшості країн світу.'
end;
return result;
end
return this;