Princess Evangile Wiki
Advertisement

Documentation for this module may be created at Module:Bad links/doc

local p = {}

local bad_links = {
	'mojito',
	'gruy[èe]re',
	'sushi',
	'pilser',
	'frappuccino',
	'wolverine',
	'maserati',
	'green', -- green tea
	'ak[%-]?47',
	'pok[eé]mon',
	'dragon'
}

function p.main(frame)
	local args = frame:getParent().args

	return p._main(args[1] or '')
end

function p._main(args)
	local result = {}

	local split_text = mw.text.split(args,' ')

	local onLink = false
	local found_match

	for _, inner in ipairs(split_text) do
		found_match = false
		local replacement = inner

		if inner:match('^([%[{])%1') then
			onLink = true
		end

		if not onLink then
			local lower = mw.ustring.lower(replacement)
			for _, bad_link in ipairs(bad_links) do 
				if mw.ustring.find(lower,bad_link) then
					found_match = true
					break
				end
			end
			if found_match then
				replacement = mw.text.split(inner,'')

				table.insert(replacement,2,'<span></span>')
				replacement = table.concat(replacement,'')
			end
		end

		if inner:match('([%]}])%1$') then
			onLink = false
		end

		table.insert(result,replacement)
	end

	result = table.concat(result,' ')

	return result
end

function p.lite(frame)
	local args = frame:getParent().args

	return p._lite(args[1] or '')
end

function p._lite(txt)
	local replacement = mw.text.split(txt,'')

	table.insert(replacement,2,'<span></span>')
	replacement = table.concat(replacement,'')

	return replacement
end

return p
Advertisement