Module:FIFARankingMax
Lua error in Module:Documentation at line 869: message: type error in message cfg.testcases-run-link-display (string expected, got nil).
local p = {}
local i18n =
{
["errors"] =
{
["entity-not-found"] = "Wikidata entity not found.",
["claims-not-found"] = "Wikidata entity has no claims.",
["property-not-found"] = "",
["unknown-claim-type"] = "Unknown claim type.",
["unknown-entity-type"] = "Unknown entity type.",
["qualifier-not-found"] = "Qualifier not found.",
["site-not-found"] = "Wikimedia project not found.",
["unknown-datetime-format"] = "Unknown datetime format.",
["ranks-not-found"] = "No ranks found."
},
["months"] =
{
"Ιανουαρίου", "Φεβρουαρίου", "Μαρτίου", "Απριλίου", "Μαΐου", "Ιουνίου", "Ιουλίου", "Αυγούστου", "Σεπτεμβρίου", "Οκτωβρίου", "Νοεμβρίου", "Δεκεμβρίου"
}
}
function p.main(frame)
-- allow us to see all values if debugging - set dbg=true as parameter
dbug = frame.args.dbg or false
-- see if a qid was supplied for arbitrary access; make empty string into nil
local qid = mw.text.trim(frame.args.qid or "")
if qid and (#qid == 0) then qid = nil end
local entity = mw.wikibase.getEntity(qid)
if not entity then return i18n.errors["entity-not-found"] end
if not entity.claims then return i18n.errors["claims-not-found"] end
local props = entity.claims['P1352']
if not props then return i18n.errors["property-not-found"] end
local rank = {}
local timestamp = {}
for k, v in pairs(props) do
if v.qualifiers and v.qualifiers["P585"] and v.qualifiers["P459"] then
if v.qualifiers["P459"][1].datavalue.value.id == "Q180825" then
rank[#rank + 1] = v.mainsnak.datavalue.value.amount
timestamp[#rank] = v.qualifiers["P585"][1].datavalue.value.time
end
end
end
if rank then
local ts = ""
local imax = 0
for i, v in ipairs(timestamp) do
if v > ts then
ts = v
imax = i
end
end
local lastdate = tonumber(ts:sub(10, 11)) .. " " .. i18n.months[tonumber(ts:sub(7, 8))] .. " " .. tonumber(ts:sub(2, 5))
local lastrank = tonumber(rank[imax])
if dbug then
return table.concat(rank, ", ") .. "<br>" .. table.concat(timestamp, ", ") .. "<br>Latest = " .. lastdate .. " rank is " .. lastrank
else
return lastrank .. " (" .. lastdate .. ")"
end
else
return i18n.errors["ranks-not-found"]
end
end
return p