Module:Sandbox/Ahecht/Cite DNV: Difference between revisions

Content deleted Content added
create draft
 
vesselid and register parsing
Line 5:
local origArgs = frame:getParent().args
local args = {}
local success=true
local register="DNV"
 
for k, v in pairs(origArgs) do
args[k] = v
end
 
url, vesselid = string.match(string.lower(args['url']),'//exchange.dnv.com/exchange/main.aspx?(.*)vesselid=(g?%d%d%d%d%d%d?)')
return '{{cite ship register|register=DNV|id='..string.match(args['url'],'[Vv][Ee][Ss][Ss][Ee][Ll][Ii][Dd]=([Gg]?%d+)')..'|shipname='..(string.match(args['title'],'\'\'(.-)\'\'') or args['title'])..'|accessdate='..((args['accessdate'] or args['access-date']) or '')
vesselid = vesselid or string.lower((args['id'] or args['ID']) or args['vesselid'])
if not vesselid then
success=false
elseif not tonumber(vesselid) then
vesselid = string.upper(vesselid)
register = "GL"
elseif vesselid > 99999 then
vesselid = "G"..vesselid
register = "GL"
end
return '{{cite ship register|register=DNV|id='..stringregister..match(args['url'],'[Vv][Ee][Ss][Ss][Ee][Ll][Ii][Dd]|id=([Gg]?%d+)')..vesselid..'|shipname='..(string.match(args['title'],'\'\'(.-)\'\'') or args['title'])..'|accessdate='..((args['accessdate'] or args['access-date']) or '')
end