Module:Infobox body of water tracking

Rise of the Salton Sea
Jump to navigation Jump to search

local p = {}

function p.tracking(frame)

   local function isblank( val ) 
       return (val == nil) or val:match('^[%s]*$')
   end
   
   local function hasnoconvert( val )
   	local res = nil
   	val = mw.text.killMarkers(val)
   	if val:match('[0-9]') then
   		res = 1
   		if val:match('[%(][−0-9%.]') and val:match('[%)]') then
   			res = nil
   		end

end return res end

   local cats = 
   local args = frame:getParent().args
   local AZ = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
   local warnmsg = {}
   
   if (isblank(args['image']) and isblank(args['image_lake']) ) then
   	if mw.title.getCurrentTitle().namespace == 0 then

cats = cats .. end

   end
   
   if isblank(args['coords']) and isblank(args['coordinates']) then 
   	if mw.title.getCurrentTitle().namespace == 0 then

cats = cats .. end

   end

   local duplicate_parameters = 0

local duplicate_list = { {'child', 'embed'},

       {'name', 'lake_name'},
       {'image', 'image_lake'},
       {'alt', 'alt_lake'},
       {'caption', 'caption_lake'},
       {'coordinates', 'coords'},
       {'lake_type', 'type'},
       {'ocean_type', 'type'},
       {'lake_type', 'ocean_type'},
       {'part_of', 'parent'},
       {'basin_countries', 'countries'},
       {'catchment_km2', 'catchment'},
       {'length_km', 'length'},
       {'width_km', 'width'},
       {'area_km2', 'area'},
       {'depth_m', 'depth'},
       {'max-depth_m', 'max-depth'},
       {'volume_km3', 'volume'},
       {'shore_km', 'shore'},
       {'elevation_m', 'elevation'},
       {'settlements', 'cities'},
       {'extra', 'nrhp'},
       {'extra', 'embedded'},
       {'embedded', 'nrhp'}
   }
   for i, params in ipairs(duplicate_list) do
   	if args[params[1]] and args[params[2]] then
   		duplicate_parameters = duplicate_parameters + 1
   		table.insert(warnmsg, 'Cannot use ' .. params[1] .. ' and ' .. params[2] .. ' at the same time.')
   	end
   end
   if (duplicate_parameters > 0) then
       cats = cats .. '[[Category:Pages using infobox body of water with ' ..
       	'duplicate parameters|' .. 
       	string.sub(AZ, duplicate_parameters, duplicate_parameters+1) .. ']]'
   end
   
   local no_convert_parameters = 0
   local dim_list = {
   	'catchment', 'length', 'width', 'area', 'depth', 'max-depth', 'volume',
   	'shore', 'elevation', 'temperature_low', 'temperature_high'}

for i, param in ipairs(dim_list) do if hasnoconvert(args[param] or ) then no_convert_parameters = no_convert_parameters + 1 table.insert(warnmsg, 'Unconverted dimensions in ' .. param .. '') end end

   if (no_convert_parameters > 0) then
       cats = cats .. 
   end
   
   if #warnmsg > 0 then

if frame:preprocess( "788" ) == "" then

cats = '

Infobox body of water warning: ' .. table.concat(warnmsg, '
') .. '

' .. cats

end end

   return cats

end

return p