Modul:URAA
Utseende
Dokumentationen för denna modul kan skapas på Modul:URAA/dok
local p = {}
function p.main( frame )
local h = {}
h[1] = frame.args[1]
h[2] = frame.args[2]
h[3] = tonumber(os.date('%Y')) -- När anropas utifrån så används klockan, annars
return p.fritt(h)
end
function p.fritt( args )
local result = ""
if p.us_fritt( args ) == "Fritt" and p.eu_fritt( args ) == "Fritt" then
result = "Fritt"
end
return result
end
--function för att se om fritt i usa
function p.us_fritt( args )
local forfattare_avliden = tonumber(args[1])
local utgivningsar = tonumber(args[2])
local innevarandear = tonumber(args[3])
-- Defaultvärde för att det är fritt
local fritt = false
-- Om utgivningsår är före 1923 eller för mer än 95 år sedan, fritt i USA
if utgivningsar < 1923 or utgivningsar < innevarandear - 95 then
fritt = true
else
--om inte fritt enl ovanstående men om författare död före 1926 så ändå fritt i USA
if forfattare_avliden < 1926 then
fritt = true
end
end
-- Om utgiven efter 1977 och författare avliden för mer än 70 år sedan, fritt även i USA
if utgivningsar > 1977 and forfattare_avliden < innevarandear - 70 then
fritt = true
end
local result = ""
if fritt then
result = "Fritt"
end
return result
end
--function för att se om fritt i Sverige/Finland
function p.eu_fritt( args )
local forfattare_avliden = tonumber(args[1])
local utgivningsar = tonumber(args[2])
local innevarandear = tonumber(args[3])
-- Defaultvärde för att det är fritt
local fritt = false
--Om författare avliden för mindre än 70 år sedan alltid CR
if forfattare_avliden < innevarandear - 70 then
fritt = true
end
-- Om utgivning < 25 år sedan alltid CR
if utgivningsar > innevarandear -25 then
fritt = false
end
local result = ""
if fritt then
result = "Fritt"
end
return result
end
--Funktion som med hjälp av ovanstående funktion räknar fram vilket år det blir fritt
function p.frinar( frame )
local h = {}
--h[1] är författare_avliden
h[1] = frame.args[1]
--h[2] är utgivningsår
h[2] = frame.args[2]
--h[3] är en siffra som adderas ett år i taget från år 1900, tills det blir rätt år.
h[3] = 1900
while p.fritt ( h ) ~= "Fritt" do
h[3] = h[3] +1
end
--slutresutatet av denna funktion är vilket år verket är fritt
return h[3]
end
--funktion som avslöjar om friheten blev senaste året eller inte
function p.nu( frame )
local h1 = {}
h1[1] = frame.args[1]
h1[2] = frame.args[2]
h1[3] = tonumber(os.date('%Y'))
local h2 = {}
h2[1] = frame.args[1]
h2[2] = frame.args[2]
h2[3] = tonumber(os.date('%Y')) - 1
local res = ""
if p.fritt( h1 ) ~= p.fritt( h2 ) then
res = "Fritt senaste året"
end
return res
end
return p