Module:Infobox body of water tracking

From Chalo Chatu, Zambia online encyclopedia

local p = {}

function p.tracking(frame)

   function isblank( val ) 
       return (val == nil) or val:match('^[%s]*$')
   end
   
   local cats = 
   local args = frame:getParent().args
   
   if (isblank(args['image']) and isblank(args['image_lake']) and isblank(args['image_ocean'])
       and isblank(args['image_Ocean']) and isblank(args['image_bay']) ) then
       cats = cats .. 
   end
   
   if isblank(args['coords']) and (isblank(args['latd']) or isblank(args['longd'])) then 
       cats = cats .. 
   end
   
   if (args[1]) then
       cats = cats .. 
   end
   
   local duplicate_parameters = 0
   local unknown_parameters = 0
   if (args['catchment_km2'] and args ['catchment']) then
       duplicate_parameters = duplicate_parameters + 1
   end
   if (args['length_km'] and args['length']) then
       duplicate_parameters = duplicate_parameters + 1
   end
   if (args['width_km'] and args['width']) then
       duplicate_parameters = duplicate_parameters + 1
   end
   if (args['area_km2'] and args['area']) then
       duplicate_parameters = duplicate_parameters + 1
   end
   if (args['depth_m'] and args['depth']) then
       duplicate_parameters = duplicate_parameters + 1
   end
   if (args['max-depth_m'] and args['max-depth']) then
       duplicate_parameters = duplicate_parameters + 1
   end
   if (args['volume_km3'] and args['volume']) then
       duplicate_parameters = duplicate_parameters + 1
   end
   if (args['shore_km'] and args['shore']) then
       duplicate_parameters = duplicate_parameters + 1
   end
   if (args['elevation_m'] and args['elevation']) then
       duplicate_parameters = duplicate_parameters + 1
   end
   if (  (args['image'] and 1 or 0) + (args['image_lake'] and 1 or 0)
       + (args['image_ocean'] and 1 or 0) + (args['image_Ocean'] and 1 or 0)
       + (args['image_bay'] and 1 or 0) > 1 ) then
       duplicate_parameters = duplicate_parameters + 1
   end
   if (  (args['name'] and 1 or 0) + (args['lake_name'] and 1 or 0)
       + (args['ocean_name'] and 1 or 0) + (args['Ocean_name'] and 1 or 0)
       + (args['bay_name'] and 1 or 0) > 1 ) then
       duplicate_parameters = duplicate_parameters + 1
   end
   if (duplicate_parameters > 0) then
       cats = cats .. 
   end
   
   local deprecated_parameters = 0
   if (args['catchment'] or ):match('^[%s]*[0-9\.,]+[^%s]*$') then
       deprecated_parameters = deprecated_parameters + 1
   end
   if (args['length'] or ):match('^[%s]*[0-9\.,]+[^%s]*$') then
       deprecated_parameters = deprecated_parameters + 1
   end
   if (args['width'] or ):match('^[%s]*[0-9\.,]+[^%s]*$') then
       deprecated_parameters = deprecated_parameters + 1
   end
   if (args['area'] or ):match('^[%s]*[0-9\.,]+[^%s]*$') then
       deprecated_parameters = deprecated_parameters + 1
   end
   if (args['depth'] or ):match('^[%s]*[0-9\.,]+[^%s]*$') then
       deprecated_parameters = deprecated_parameters + 1
   end
   if (args['max-depth'] or ):match('^[%s]*[0-9\.,]+[^%s]*$') then
       deprecated_parameters = deprecated_parameters + 1
   end
   if (args['volume'] or ):match('^[%s]*[0-9\.,]+[^%s]*$') then
       deprecated_parameters = deprecated_parameters + 1
   end
   if (args['shore'] or ):match('^[%s]*[0-9\.,]+[^%s]*$') then
       deprecated_parameters = deprecated_parameters + 1
   end
   if (args['elevation'] or ):match('^[%s]*[0-9\.,]+[^%s]*$') then
       deprecated_parameters = deprecated_parameters + 1
   end
   if isblank(args['shore_m']) then
   else
       unknown_parameters = unknown_parameters + 1
   end
   if isblank(args['latitude']) then
   else
       unknown_parameters = unknown_parameters + 1
   end
   if isblank(args['longitude']) then
   else
       unknown_parameters = unknown_parameters + 1
   end
   if isblank(args['code']) then
   else
       unknown_parameters = unknown_parameters + 1
   end
   if isblank(args['map_type']) then
   else
       unknown_parameters = unknown_parameters + 1
   end
   if isblank(args['elevation_reference']) then
   else
       unknown_parameters = unknown_parameters + 1
   end
   if (args['elevation_ref'] or ):match('^[%s]*[A-Z%-]+[^%s]*$') then
       unknown_parameters = unknown_parameters + 1
   end
   if (deprecated_parameters > 0) then
       cats = cats .. 
   end


   if (unknown_parameters > 0) then
       cats = cats .. 
   end
   
   return cats

end

return p