local Date = require('Module:Date')._Date
local p = {}
-- Translation table for converting numeric-IDs to shorthand aliases.
local systems = {
[10677] = 'PS1',
[1323662] = 'PS1', -- Placeholder, this is actually the series but could be mistakenly used for PS1.
[10680] = 'PS2',
[10683] = 'PS3',
[5014725] = 'PS4',
[16338] = 'PC',
[8079] = 'Wii',
[56942] = 'WiiU',
[132020] = 'XBOX',
[48263] = 'X360',
[13361286] = 'XONE',
}
function p.getSystemAlias(numericId)
return systems[numericId];
end
function p.printReviewRow(frame, reviewscore, df)
local ret = ""
local system = nil;
local score = nil;
local reference = nil;
if(not(reviewscore['qualifiers']['P400'] == nil or reviewscore['qualifiers']['P400'][1] == nil)) then
system = systems[reviewscore['qualifiers']['P400'][1]['datavalue']['value']['numeric-id']];
end
if(not (system == nil or system == "")) then
ret = ret.."("..system..") ";
end;
score = reviewscore['mainsnak']['datavalue']['value'];
if(not (score == nil or score == "")) then
ret = ret..score;
end;
if(not (reviewscore['references'] == nil or reviewscore['references'][1] == nil)) then
if(not (reviewscore['references'][1]['snaks']['P854'] == nil or reviewscore['references'][1]['snaks']['P854'][1] == nil)) then
reference = reviewscore['references'][1]['snaks']['P854'][1]['datavalue']['value'];
end;
if(not (reference == nil or reference == "")) then
local cite = "{{cite web|url="..reference;
local timestamp = nil;
local publisher = nil;
local title = nil;
if(not (reviewscore['references'][1]['snaks']['P813'] == nil or reviewscore['references'][1]['snaks']['P813'][1] == nil)) then
timestamp = reviewscore['references'][1]['snaks']['P813'][1]['datavalue']['value']['time'];
end;
if(not (reviewscore['references'][1]['snaks']['P123'] == nil or reviewscore['references'][1]['snaks']['P123'][1] == nil)) then
publisher = mw.wikibase.label('Q'..reviewscore['references'][1]['snaks']['P123'][1]['datavalue']['value']['numeric-id']);
end;
if(not (reviewscore['references'][1]['snaks']['P1476'] == nil or reviewscore['references'][1]['snaks']['P1476'][1] == nil)) then
title = reviewscore['references'][1]['snaks']['P1476'][1]['datavalue']['value']['text'];
end;
if(not(title == nil or title == "")) then
cite = cite .. "|title="..title;
end;
if(not(publisher == nil or publisher == "")) then
cite = cite .. "|publisher="..publisher;
end;
if(not(timestamp == nil or timestamp == "")) then
local year = string.sub(timestamp,2,5);
local month = string.sub(timestamp,7,8);
local day = string.sub(timestamp,10,11);
local accessdate = Date(year, month, day):text(df);
cite = cite .. "|accessdate="..accessdate;
end;
cite = cite..'}}';
cite = frame:extensionTag{ name = "ref", args = {name=name}, content=cite };
ret = ret..cite;
end;
end;
return ret .. "<br />";
end
return p