Module:Legislationuk/test explained

local p =

function p.main(frame) if frame:getParent.args[1 ] then args = frame:getParent.args else args = frame.args end local qid, snakShort, snakLong, snakDate, snakSession, snakCitation, snaklegGovUK local o = "" local leg = for _,v in pairs(args) do qid = args[_ ] --short title snakShort = mw.wikibase.getBestStatements(qid, 'P1813') leg.Short = for __,vv in ipairs(snakShort) do if snakShort[__ ].mainsnak.datavalue.value.language

"en" then leg.Short.en = snakShort[__ ].mainsnak.datavalue.value.text elseif snakShort[__ ].mainsnak.datavalue.value.language

"cy" then leg.Short.cy = snakShort[__ ].mainsnak.datavalue.value.text end end --long title snakLong = mw.wikibase.getBestStatements(qid, 'P1448') leg.Long = for __,vv in ipairs(snakLong) do if snakLong[__ ].mainsnak.datavalue.value.language

"en" then leg.Long.en = snakLong[__ ].mainsnak.datavalue.value.text elseif snakLong[__ ].mainsnak.datavalue.value.language

"cy" then leg.Long.cy = snakLong[__ ].mainsnak.datavalue.value.text end end --date snakDate = mw.ustring.sub(mw.wikibase.getBestStatements(qid, 'P7589')[1].mainsnak.datavalue.value.time, 2, 11) leg.Date = os.time --session snakSession = mw.wikibase.getBestStatements(qid, 'P2937') for __,vv in ipairs(snakSession) do leg.Session = snakSession[__ ].mainsnak.datavalue.value.id end --citation snakCitation = mw.wikibase.getBestStatements(qid, 'P1031') leg.Citation = for __,vv in ipairs(snakCitation) do --for each citation statement if snakCitation[__ ].qualifiers then --if there are qualifiers if snakCitation[__ ].qualifiers.P1001 and snakCitation[__ ].qualifiers.P407 then --if it has jurisdiction and language local c = 0 for ___,vvvv in ipairs(snakCitation[__ ].qualifiers.P1001) do --for each jurisdiction if snakCitation[__ ].qualifiers.P1001[___ ].datavalue.value.id

"Q145" then c = c + 4 end --if jurisdiction is UK end for ___,vvvv in ipairs(snakCitation[__ ].qualifiers.P407) do --for each language if snakCitation[__ ].qualifiers.P1001[___ ].datavalue.value.id

"Q1860" then c = c + 2 --if language is English elseif snakCitation[__ ].qualifiers.P1001[___ ].datavalue.value.id

"Q9309" then c = c + 1 --if langauge is Welsh end end if c

6 then leg.Citation.en = snakCitation[__ ].mainsnak.datavalue.value --if jurisdiction is UK and language English elseif c

5 then leg.Citation.cy = snakCitation[__ ].mainsnak.datavalue.value --if jurisdiction is UK and language Welsh end c = 0 elseif snakCitation[__ ].qualifiers.P1001 then --if it has jurisdiction but not language for ___,vvvv in ipairs(snakCitation[__ ].qualifiers.P1001) do --for each jurisdiction if snakCitation[__ ].qualifiers.P1001[___ ].datavalue.value.id

"Q145" then leg.Citation.en = snakCitation[__ ].mainsnak.datavalue.value end end elseif snakCitation[__ ].qualifiers.P407 then --if it has language but not jurisdiction for ___,vvvv in ipairs(snakCitation[__ ].qualifiers.P407) do --for each language if snakCitation[__ ].qualifiers.P407[___ ].datavalue.value.id

"Q1860" then --if language is English leg.Citation.en = snakCitation[__ ].mainsnak.datavalue.value elseif snakCitation[__ ].qualifiers.P407[___ ].datavalue.value.id

"Q9309" then --if langauge is Welsh leg.Citation.cy = snakCitation[__ ].mainsnak.datavalue.value end end else leg.Citation.en = snakCitation[__ ].mainsnak.datavalue.value --if no relevant qualifiers end else leg.Citation.en = snakCitation[__ ].mainsnak.datavalue.value --if no qualifiers end end --legislation.gov.uk ID snaklegGovUK = mw.wikibase.getBestStatements(qid, 'P3343') for __,vv in ipairs(snaklegGovUK) do leg.GovUK = "https://www.legislation.gov.uk/id/" .. snaklegGovUK[__ ].mainsnak.datavalue.value end o = o .. " " .. leg.Short.en end return oend

return p