More actions
Documentation for this module may be created at Module:File license/doc
local p = {} --p stands for package
local h = {} --h stands for helper
function p.makeLicense(frame)
local args = frame:getParent().args
local image = args["image"] or ""
local imageSize = tonumber(args["image size"]) or 80
local typeOfFile = args["type of file"] or "image"
local source = args["source"] or ""
local license = args["license"] or ""
local copyrightHolder = args["copyright holder"] or ""
local intent = args["intent"] or "to illustrate articles"
local tentative = args["tentative"] or ""
local ownWork = args["own work"] or ""
local trademarkOwner = args["trademark owner"] or ""
local trademarkUsage = args["trademark usage"] or "Its use here is believed not to be [[wikipedia:trademark infringement|trademark infringement]]."
local attribution = args["attribution"] or ""
local attributionFormat = args["attribution format"] or ""
local includeEndorsementNotice = args["endorsement notice"] or ""
if tentative ~= "" then
tentativeText = "It is believed that use"
else
tentativeText = "Use"
end
local typeOfFileArticle = "a"
local vowels = {["a"] = true, ["e"] = true, ["i"] = true, ["o"] = true, ["u"] = true}
if vowels[string.sub(typeOfFile, 1, 1)] then
typeOfFileArticle = "an"
end
local sourceText = ""
if source ~= "" then
sourceText = " from " .. source
end
local copyrightHolderData = mw.loadData("Module:File license/data/copyright holders")
local imageCode = ""
if image ~= "" then
imageCode = '<span style="margin-top:5px;float:left;margin-right:10px;">[[File:' .. image .. '|' .. tostring(imageSize) .. "px]]</span>"
elseif copyrightHolderData[copyrightHolder] then
if copyrightHolderData[copyrightHolder][2] then
imageCode = '<span style="margin-top:5px;float:left;margin-right:10px;">[[File:' .. copyrightHolderData[copyrightHolder][2] .. '|' .. tostring(imageSize) .. "px]]</span>"
end
end
local copyrightHolderText = ""
if copyrightHolder ~= "" then
if copyrightHolderData[copyrightHolder] then
if copyrightHolderData[copyrightHolder][1] then
copyrightHolderText = frame:preprocess(copyrightHolderData[copyrightHolder][1])
end
elseif copyrightHolderDisplay then
copyrightHolderText = "[[" .. copyrightHolder .. "|" .. copyrightHolderDisplay .. "]]"
else
copyrightHolderText = frame:preprocess(copyrightHolder)
end
end
local attributionText = attribution
if attributionText == "" then
attributionText = copyrightHolderText
end
if attributionText == "" then
attributionText = trademarkOwner
end
local licenseData = mw.loadData("Module:File license/data/licenses")
local licenseText = ""
local licenseMachinedata = ""
if licenseData[license] then
if ownWork ~= "" then
licenseText = "I, the copyright holder of this ".. typeOfFile .. ", hereby " .. frame:preprocess(licenseData[license][2]) .. " it's use on Tardis Wiki, hosted on servers in France by Wiki Federation, " .. intent .. "."
else
licenseText = tentativeText .. " of this " .. typeOfFile .. " " .. intent .. " on Tardis Wiki, hosted on servers in France by Wiki Federation, " .. frame:preprocess(licenseData[license][1])
end
licenseText = frame:preprocess(licenseData[license][11]) .. licenseText .. " " .. frame:preprocess(licenseData[license][3])
licenseMachinedata = '<span class="licensetpl"><span class="licensetpl_short">' .. licenseData[license][4] .. '</span><span class="licensetpl_long">' .. licenseData[license][5] .. '</span><span class="licensetpl_link">' .. frame:preprocess("<nowiki>" .. licenseData[license][6] .. "</nowiki>") .. '</span><span class="licensetpl_link_req">' .. tostring(licenseData[license][7]) .. '</span><span class="licensetpl_attr_req">' .. tostring(licenseData[license][8]) .. '</span><span class="licensetpl_attr">' .. attributionText .. '</span><span class="licensetpl_nonfree">' .. tostring(licenseData[license][9]) .. '</span></span>'
end
local infoMachinedata = '<span class="fileinfotpl"><span class="fileinfotpl_desc">' .. string.sub(typeOfFileArticle, 1, 1):upper() .. string.sub(typeOfFileArticle, 2, -1) .. ' ' .. typeOfFile .. sourceText .. '.</span><span class="fileinfotpl_src">' .. source .. '</span><span class="fileinfotpl_aut">' .. copyrightHolderText .. '</span></span>'
local i = 1
local extraCopyrightText = ""
while args["extra copyright" .. tostring(i)] and args["extra copyright" .. tostring(i)] ~= "" do
extraCopyrightText = extraCopyrightText .. args["extra copyright" .. tostring(i)]
if string.find(args["extra copyright" .. tostring(i)], "and") then
extraCopyrightText = extraCopyrightText .. " are "
else
extraCopyrightText = extraCopyrightText .. " is "
end
extraCopyrightText = extraCopyrightText .. " © " .. args["extra copyright owner" .. tostring(i)] .. ". "
i = i + 1
end
if extraCopyrightText ~= "" then
extraCopyrightText = "<hr/>" .. extraCopyrightText
end
local trademarkText = ""
if trademarkOwner ~= "" then
trademarkText = "<hr/><span class='restriction-trademarked'>Additionally, some or all of this " .. typeOfFile .. " is a trademark of " .. trademarkOwner .. ". "
if trademarkUsage ~= "" then
trademarkText = trademarkText .. trademarkUsage
end
trademarkText = trademarkText .. "</span>"
end
local copyrightOwnedByText = ""
if licenseData[license][10] then
copyrightOwnedByText = "It is not under copyright, but some parties may still have other intellectual property rights over this image."
else
copyrightOwnedByText = "It's copyright is owned by " .. copyrightHolderText .. ". Other parties may have intellectual property rights over this image, as well."
end
local attributionNotice = ""
if attributionText ~= "" then
if licenseData[license][8] then
attributionNotice = "<hr/>When using this " .. typeOfFile .. ", it's creator/owner, " .. attributionText .. ", must be attributed."
else
attributionNotice = "<hr/>While not required by the license, this " .. typeOfFile .. " can be attributed to " .. attributionText .. "."
end
if attributionFormat ~= "" then
attributionNotice = attributionNotice .. " This should be done in in the following way: <br/><center>" .. frame:preprocess(attributionFormat) .. "</center>"
end
end
local endorsementNotice = ""
if includeEndorsementNotice ~= "" then
endorsementNotice = "<hr/>The presence of this " .. typeOfFile .. " does not in any way imply endorsement by the copyright holder of the page on which it appears. It also does not imply any endorsement of this wiki in general. This wiki is not affiliated with any entity who owns, or is represented by, this" .. typeOfFile .. "."
end
local finalLicense = '<div id="license">' .. imageCode .. "This file is " .. typeOfFileArticle .. " '''" .. typeOfFile .. "'''" .. sourceText .. ". " .. copyrightOwnedByText .. extraCopyrightText .. endorsementNotice .. "<hr/>" .. licenseText .. trademarkText .. attributionNotice .. '<span style="display:none;>" ' .. licenseMachinedata .. infoMachinedata .. "</span></div>"
return finalLicense
end
return p