Module:Video game series reviews/sandbox
Appearance
![]() | This is the module sandbox page for Module:Video game series reviews (diff). |
Main module for {{Video game series reviews}}.
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
local Vgrs = require('Module:Video game review score/sandbox')
local p = {}
local wikidataUsed = false;
local mc, gr, fam, sales, year = false, false, false, false, false -- Column flags
local function row(frame, args, i)
local ret = ""
local vgrsReady, vgrsScore = false, nil
if(args["qid" ..i]) then
vgrsScore = Vgrs.setGame(args["qid" ..i]);
if(vgrsScore == nil) then
vgrsReady = true;
end;
end
ret = ret .. "|-\n"
ret = ret .. "! scope=\"row\" | ''" .. args["game" ..i]
if(vgrsReady) then
ret = ret .. " " .. Vgrs.getUpdateLink();
end;
ret = ret .. "'' \n"
if year then
ret = ret .. "| style=\"text-align: center;\" | " .. (args["year" ..i] or '') .. " \n"
end
if sales then
ret = ret .. "| style=\"text-align: center;\" | " .. (args["sales" ..i] or '') .. " \n"
end
if fam then
ret = ret .. "| style=\"text-align: center;\" | " .. (args["fam" ..i] or '') .. " \n"
end
if gr then
ret = ret .. "| style=\"text-align: center;\" | "
if(args["gr" ..i]) then
ret = ret .. args["gr" ..i]
elseif(args["qid" ..i]) then
local score = Vgrs.setReviewer("gr");
if(score == nil) then
score = Vgrs.printReviewScores(frame);
end;
ret = ret .. score;
end;
ret = ret .. " \n"
end
if mc then
ret = ret .. "| style=\"text-align: center;\" | "
if(args["mc" ..i]) then
ret = ret .. args["mc" ..i]
elseif(args["qid" ..i]) then
local score = Vgrs.setReviewer("mc");
if(score == nil) then
score = Vgrs.printReviewScores(frame);
end;
ret = ret .. score;
end;
ret = ret .. " \n"
end
return ret
end
function p.main(frame)
local args = getArgs(frame)
return p._main(frame, args)
end
function p._main(frame, args)
local ret = ""
local highGame = 0
Vgrs.setDateFormat("mdy");
Vgrs.setSystem(nil);
Vgrs.setGenerateReferences(true);
Vgrs.setShowSystem(true);
Vgrs.setShowUpdateLink(false);
for k, v in pairs(args) do
if string.find(k, "mc%d+") then
mc = true;
elseif string.find(k, "gr%d+") then
gr = true;
elseif string.find(k, "fam%d+") then
fam = true;
elseif string.find(k, "sales%d+") then
sales = true;
elseif string.find(k, "year%d+") then
year = true;
elseif string.find(k, "game%d+") or string.find(k, "qid%d+") then
local num = tonumber(string.match(k, "%d+"))
if not(num == nil) and highGame < num then
highGame = num
end;
end;
end
if args["mc"] then
mc = yesno(args.mc, false)
end
if args["gr"] then
gr = yesno(args.gr, false)
end
if args["fam"] then
fam = yesno(args.fam, false)
end
if args["sales"] then
sales = yesno(args.sales, false)
end
ret = ret .. "{| class=\"wikitable plainrowheaders\" style=\"font-size: 90%; float: right; clear: right; margin:0.5em 0 0.5em 1em;\"\n"
ret = ret .."|+ style=\"font-size: 111.11%;\" | "
if args.title then
ret = ret .. args.title
elseif sales then
if fam then
ret = ret .. "Sales and review scores"
elseif gr or mc then
ret = ret .. "Sales and aggregate review scores"
else
ret = ret .. "Sales"
end
elseif fam then
if gr or mc then
ret = ret .. "Japan and Western review scores"
else
ret = ret .. "Famitsu review scores"
end
else
ret = ret .. "Aggregate review scores"
end
if args.updated then
ret = ret .. "<br /><small>''As of " .. args.updated ..".''</small>"
end
ret = ret .. " \n"
ret = ret .. "! scope=\"col\" | Game \n"
if year then
ret = ret .. "! scope=\"col\" | Year\n"
end
if sales then
ret = ret .. "! scope=\"col\" | " .. (args.sales_title or "Units sold") .. " \n"
end
if fam then
ret = ret .. "! scope=\"col\" | " .. (args.fam_title or "''[[Famitsū scores|Famitsu]]''") .. " \n"
end
if gr then
ret = ret .. "! scope=\"col\" | " .. (args.gr_title or "[[GameRankings]]") .. " \n"
end
if mc then
ret = ret .. "! scope=\"col\" | " .. (args.mc_title or "[[Metacritic]]") .. " \n"
end
for i = 1, highGame do
if args["game" ..i] or args["qid" ..i] then
ret = ret .. row(frame, args, i)
end
end
ret = ret .. "|}"
return ret
end
return p