请输入您要查询的百科知识:

 

词条 Module:Sandbox/RexxS/Ranking
释义 -- 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, ", ") .. "
" .. table.concat(timestamp, ", ") .. "
Latest = " .. lastdate .. " rank is " .. lastrank

else

return lastrank .. " (" .. lastdate .. ")"

end

else

return i18n.errors["ranks-not-found"]

end

end

return p

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/13 14:06:36