Module:Legislationuk/test
Appearance
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 { day = tonumber( mw.ustring.sub( snakDate, 9, 10 ) ), month = tonumber( mw.ustring.sub( snakDate, 6, 7 ) ), year = tonumber( mw.ustring.sub( snakDate, 1, 4 ) ) }
--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 o
end
return p