Difference between revisions of "Module:Sandbox/Ahecht/Cite DNV"
< Module:Sandbox | Ahecht
Jump to navigation
Jump to search
blackwiki>Pppery m (Pppery moved page Module:Cite DNV/sandbox to Module:Sandbox/Ahecht/Cite DNV without leaving a redirect: Module:Foo/sandbox is the naming convention for sandboxed additions to an existing the module, not the naming convention for non-fully-developed new modules) |
m (15 revisions imported) |
(No difference)
|
Latest revision as of 09:14, 27 September 2020
Documentation for this module may be created at Module:Sandbox/Ahecht/Cite DNV/doc
local p = {}
local htmlerror = require('Module:Error').error
function p.citednv(frame)
local origArgs = frame:getParent().args
local args = {}
local success=true
local register="DNV"
local outstr = ""
for k, v in pairs(origArgs) do
args[k] = v
end
url, vesselid = string.match(string.lower(args['url'] or ''),'//exchange.dnv.com/exchange/main.aspx?(.*)vesselid=(g?%d%d%d%d%d%d?)')
vesselid = (vesselid or string.lower(((args['id'] or args['ID']) or args['vesselid']) or '') )
if vesselid == '' then
success=false
elseif not tonumber(vesselid) then
vesselid = string.upper(vesselid)
register = "GL"
elseif tonumber(vesselid) > 99999 then
vesselid = "G"..vesselid
register = "GL"
end
shipname = ((string.match((args['title'] or ''),'\'\'(.-)\'\'') or args['title']) or (args['shipname'] or args['name'])) or ''
if shipname == '' then success=false end
if success then
return '{{cite ship register |register='..register..' |id='..vesselid..' |shipname='..shipname..' |accessdate='..((args['accessdate'] or args['access-date']) or '')..' }}'
else
outstr = args['url'] and '{{cite web' or '{{cite DNV'
for k, v in pairs(origArgs) do
outstr = outstr..' | '..k..'='..v
end
outstr = outstr..'}}'..(args['url'] and '' or htmlerror{'Error in [[Template:Cite DNV]]: Invalid parameters.'})
return outstr
end
end
return p