Content deleted Content added
BrokenSegue (talk | contribs) factor out logic into newestMatching |
BrokenSegue (talk | contribs) refactor |
||
Line 106:
return false
end▼
end▼
return tmp▼
end
Line 154 ⟶ 124:
end
-- for a given
function
local statements = e:getBestStatements(prop)▼
local newestStatement = nil
local newestStatementYr = nil
Line 162 ⟶ 131:
local newestStatementDay = nil
for k, v in pairs(statements) do
if v['rank'] ~= "deprecated" and v['qualifiers'] and v['qualifiers'][qual] then
local quals = v['qualifiers'][qual]
-- should only have one instance of the qualifier on a statement
Line 173 ⟶ 142:
if targetYr then
local older = datePrecedesDate(targetYr, targetMo, targetDay, newestStatementYr, newestStatementMo, newestStatementDay)
if older == nil or not older then
newestStatementYr, newestStatementMo, newestStatementDay = targetYr, targetMo, targetDay
newestStatement = v
Line 187 ⟶ 152:
end
end
return newestStatement
▲end
-- for a given property and qualifier pair returns the newest statement that matches
function newestMatching(e, prop, qual, targetQualValue)
-- first check the best statements
▲ local statements = e:getBestStatements(prop)
local newestStatement = newestMatchingStatement(statements, qual, targetQualValue)
if newestStatement then
return newestStatement
-- try again with all statements if nothing so far
statements = e:getAllStatements(prop)
newestStatement = newestMatchingStatement(statements, qual, targetQualValue)
if newestStatement then
return newestStatement
Line 226 ⟶ 205:
local e = getEntity(frame)
local chanId = getBestYtChanId(e)
local s = newestMatching(e, SUB_COUNT_PID, YT_CHAN_ID_PID, chanId)
if s then
if not yt_year then
▲ yt_year, yt_month, yt_day = getClaimDate(v)
▲ -- construct YYYY|mm|dd date string
▲ dateString = dateString .. yt_month .. "|"
▲ dateString = dateString .. yt_day
▲ end
▲ return "{{Format date|" ..dateString .. "}}"
end
end
Line 257 ⟶ 228:
local chanId = getBestYtChanId(e)
if chanId then
local
if s and s["mainsnak"] and s['mainsnak']["datavalue"] and s['mainsnak']["datavalue"]["value"] and s['mainsnak']["datavalue"]['value']['amount'] then
▲ subCount = v["mainsnak"]["datavalue"]["value"]["amount"]
▲ end
end
if subCount then
|