Difference between revisions of "Module:CapitalizationCheck"

From Nookipedia, the Animal Crossing wiki
m
Tag: Undo
m
Line 36: Line 36:
 
     local game        = args[2] or ''
 
     local game        = args[2] or ''
 
     return p.checkCaps(compare, game)
 
     return p.checkCaps(compare, game)
 +
end
 +
 +
-- https://stackoverflow.com/questions/2421695/first-character-uppercase-lua
 +
function firstToUpper(str)
 +
    return (str:gsub("^%l", string.upper))
 
end
 
end
  
Line 53: Line 58:
 
end
 
end
 
elseif game == "NH" or game == "New Horizons" then
 
elseif game == "NH" or game == "New Horizons" then
if mw.getContentLanguage():ucfirst(compare) ~= mw.getContentLanguage():ucfirst(data.newHorizons[compare]) then
+
if firstToUpper(compare) ~= firstToUpper(data.newHorizons[compare]) then
print = print .. mw.getContentLanguage():ucfirst(compare) .. '\n'
+
print = print .. firstToUpper(compare) .. '\n'
print = print .. mw.getContentLanguage():ucfirst(data.newHorizons[compare]) .. '\n'
+
print = print .. firstToUpper(data.newHorizons[compare]) .. '\n'
 
print = print .. "Wrong.[[Category:Pages with item names improperly capitalized]]"
 
print = print .. "Wrong.[[Category:Pages with item names improperly capitalized]]"
 
elseif compare ~= data.newHorizons[compare] then
 
elseif compare ~= data.newHorizons[compare] then

Revision as of 11:58, November 19, 2022

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

local p = {}
local getArgs = require('Module:Arguments').getArgs
data = mw.loadData("Module:CapitalizationCheck/Data")

function checkFirstGen(s)
	if s == "DnM" then
		return true
	elseif s == "Doubutsu no Mori" then
		return true
	elseif s == "DnM+" then
		return true
	elseif s == "Doubutsu no Mori+" then
		return true
	elseif s == "PG" then
		return true
	elseif s == "Animal Crossing" then
		return true
	elseif s == "DnMe+" then
		return true
	elseif s == "Doubutsu no Mori e+" then
		return true
	elseif s == "iQue" then
		return true
	elseif s == "Dòngwù Sēnlín" then
		return true
	elseif s == "Dongwu Senlin" then
		return true
	else
		return false
	end
end

function p.main(frame)
    local args         = getArgs(frame)
    local compare      = args[1] or ''
    local game         = args[2] or ''
    return p.checkCaps(compare, game)
end

-- https://stackoverflow.com/questions/2421695/first-character-uppercase-lua
function firstToUpper(str)
    return (str:gsub("^%l", string.upper))
end

function p.checkCaps(compare, game)
	print = ''
	if checkFirstGen(game) then
		if compare ~= data.firstGen[compare] then
			print = print .. "Wrong.[[Category:Pages with item names improperly capitalized]]"
		elseif mw.getContentLanguage():ucfirst(compare) ~= mw.getContentLanguage():ucfirst(data.firstGen[compare]) then
			print = print .. "Wrong.[[Category:Pages with item names improperly capitalized]]"
		end
	elseif game == "WW" or game == "Wild World" then
		if compare ~= data.wildWorld[compare] then
			print = print .. "Wrong.[[Category:Pages with item names improperly capitalized]]"
		elseif mw.getContentLanguage():ucfirst(compare) ~= mw.getContentLanguage():ucfirst(data.wildWorld[compare]) then
			print = print .. "Wrong.[[Category:Pages with item names improperly capitalized]]"
		end
	elseif game == "NH" or game == "New Horizons" then
		if firstToUpper(compare) ~= firstToUpper(data.newHorizons[compare]) then
			print = print .. firstToUpper(compare) .. '\n'
			print = print .. firstToUpper(data.newHorizons[compare]) .. '\n'
			print = print .. "Wrong.[[Category:Pages with item names improperly capitalized]]"
		elseif compare ~= data.newHorizons[compare] then
			print = print .. "Wrong.[[Category:Pages with item names improperly capitalized]]"
		end
	end
	return print
end

return p