Home
Random
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:Sandbox/RexxS/Ranking
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
-- Module to return most recent ranking (P1352) from FIFA (Q180825) -- making use of point in time (P585) -- local p = {} local i18n = { ["errors"] = { ["entity-not-found"] = "Wikidata entity not found.", ["claims-not-found"] = "Wikidata entity has no claims.", ["property-not-found"] = "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"] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" } } p.getRanking = function(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
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Template used on this page:
Module:Sandbox/RexxS/Ranking/doc
(
edit
)