How Can We Help?
You are here:
< Back
local type_specifier = {'TV series', 'TV programme', 'TV program', 'TV film', 'film', 'miniseries', 'serial', 'game show', 'talk show', 'web series'};

local function validate (dab)
	local dab_no_specifier = '';
	local count = 0;
	for i, v in ipairs (type_specifier) do
		dab_no_specifier, count = dab:gsub (v .. '$', '');
		if 0 ~= count then
			break;																-- found and removed a specifier
		end
	end

	if 0 == count then
		return 'error: no type specifier';
	end
 
	dab_no_specifier = mw.text.trim (dab_no_specifier);							-- remove trailing white space if there is any

	local year = '';
	local adj = '';
	if dab_no_specifier:match ('^%d+ %D+') then
		year, adj = dab_no_specifier:match ('^(%d+) (%D+)');					-- had year and country adjective
		-- call to validate year
		-- call to validate country adjective
		return 'type specifier + adjective + year';
	elseif dab_no_specifier:match ('^%d+$') then
		year = dab_no_specifier:match ('^%d+');									-- had year
		-- call to validate year
		return 'type specifier + year ' .. year;
	elseif dab_no_specifier:match ('^%D+$') then
		adj = dab_no_specifier;													-- had country adjective
		-- call to validate country adjective
		return 'type specifier + adjective ' .. adj;
	elseif '' == dab_no_specifier then
		return 'type specifier only';											-- no dab extensions
	else
		return 'error: malformed dab';
	end
end

return {validate=validate};
Categories
Table of Contents