Jump to content

Module:German coord convert

Permanently protected module
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Frietjes (talk | contribs) at 15:24, 23 January 2017 (test). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
-- This module converts German Wikipedia-style coordinates to a formatted 
-- invocation of the [[template:coord]] template
local p = {}

function p.main(frame)
	local latstr = frame.args[1] or ''
	local lonstr = frame.args[2] or ''
	local tstr   = frame.args[3] or ''
	local fstr   = frame.args['format'] or ''
	local dstr   = frame.args['display'] or ''
	local nmstr  = frame.args['name'] or ''
	local ntstr  = frame.args['notes'] or ''
	local issubst= frame.args['subst'] or ''

	latstr = mw.ustring.gsub(latstr, '[%s]', '')
	lonstr = mw.ustring.gsub(lonstr, '[%s]', '')
	latstr = mw.ustring.gsub(latstr, ',', '.')
	lonstr = mw.ustring.gsub(lonstr, ',', '.')
	latstr = mw.ustring.gsub(latstr, '[Oo]', 'E')
	if (1) then
		local res = ''
		if (tstr ~= '' ) then
			res = '|' .. tstr
		end
		if (fstr ~= '' ) then
			res = res .. '|format=' .. fstr
		end
		if (dstr ~= '' ) then
			res = res .. '|display=' .. dstr
		end
		if (nmstr ~= '' ) then
			res = res .. '|name=' .. nmstr
		end
		if (ntstr ~= '' ) then
			res = res .. '|notes=' .. ntstr
		end
   		latstr = mw.ustring.gsub(latstr, '/[/]*', '|')
   		lonstr = mw.ustring.gsub(lonstr, '/[/]*', '|')
   		return '{{coord|' .. latstr .. '|' .. lonstr .. res .. '}}'
   	else
   		local targs = mw.text.split( latstr .. '/' .. lonstr, '/[/]*')
   		if tstr ~= '' then
	   		targs[#targs] = tstr
	   	end
	   	if fstr ~= '' then
	   		targs['format'] = fstr
	   	end
	   	if dstr ~= '' then
	   		targs['display'] = dstr
	   	end
	   	if nmstr ~= '' then
	   		targs['name'] = nmstr
	   	end
	   	if ntstr ~= '' then
	   		targs['notes'] = ntstr
	   	end
   		return frame:expandTemplate{ title = 'coord', args = targs }
	end
end

return p