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, o, legShort, legLong, legDate, legSession, legCitation, legGovUK
local leg = {}
for _,v in pairs( args ) do
qid = args[ _ ]
--short title
legShort = mw.wikibase.getBestStatements( qid, 'P1813' )
for __,vv in ipairs( legShort ) do
if legShort[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ][ "language" ] == "en" then
leg[ "legShort" ] = legShort[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ][ "text" ]
elseif legShort[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ][ "language" ] == "cy" then
leg[ "legShortCy" ] = legShort[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ][ "text" ]
end
end
--long title
legLong = mw.wikibase.getBestStatements( qid, 'P1448' )
for __,vv in ipairs( legLong ) do
if legLong[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ][ "language" ] == "en" then
leg[ "legLong" ] = legLong[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ][ "text" ]
elseif legLong[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ][ "language" ] == "cy" then
leg[ "legLongCy" ] = legLong[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ][ "text" ]
end
end
--date
legDate = mw.ustring.sub( mw.wikibase.getBestStatements( qid, 'P7589' )[1][ "mainsnak" ][ "datavalue" ][ "value" ][ "time" ], 2, 11 )
leg[ "legDate" ] = os.time { day = tonumber( mw.ustring.sub( legDate, 9, 10 ) ), month = tonumber( mw.ustring.sub( legDate, 6, 7 ) ), year = tonumber( mw.ustring.sub( legDate, 1, 4 ) ) }
--session
legSession = mw.wikibase.getBestStatements( qid, 'P2937' )
for __,vv in ipairs( legSession ) do
leg[ "legSession" ] = legSession[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ][ "id" ]
end
--citation
legCitation = mw.wikibase.getBestStatements( qid, 'P1031' )
for __,vv in ipairs( legCitation ) do --for each citation statement
if legCitation[ __ ][ "qualifiers" ] then --if there are qualifiers
if legCitation[ __ ][ "qualifiers" ][ "P1001" ] and legCitation[ __ ][ "qualifiers" ][ "P407" ] then --if it has jurisdiction and language
local c = 0
for ___,vvvv in ipairs( legCitation[ __ ][ "qualifiers" ][ "P1001" ] ) do --for each jurisdiction
if legCitation[ __ ][ "qualifiers" ][ "P1001" ][ ___ ][ "datavalue" ][ "value" ][ "id" ] == "Q145" then c = c + 4 end --if jurisdiction is UK
end
for ___,vvvv in ipairs( legCitation[ __ ][ "qualifiers" ][ "P407" ] ) do --for each language
if legCitation[ __ ][ "qualifiers" ][ "P1001" ][ ___ ][ "datavalue" ][ "value" ][ "id" ] == "Q1860" then c = c + 2 --if language is English
elseif legCitation[ __ ][ "qualifiers" ][ "P1001" ][ ___ ][ "datavalue" ][ "value" ][ "id" ] == "Q9309" then c = c + 1 --if langauge is Welsh
end
end
if c == 6 then leg[ "legCitation" ] = legCitation[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ] --if jurisdiction is UK and language English
elseif c == 5 then leg[ "legCitationCy" ] = legCitation[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ] --if jurisdiction is UK and language Welsh
end
c = 0
elseif legCitation[ __ ][ "qualifiers" ][ "P1001" ] then --if it has jurisdiction but not language
for ___,vvvv in ipairs( legCitation[ __ ][ "qualifiers" ][ "P1001" ] ) do --for each jurisdiction
if legCitation[ __ ][ "qualifiers" ][ "P1001" ][ ___ ][ "datavalue" ][ "value" ][ "id" ] == "Q145" then
leg[ "legCitation" ] = legCitation[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ]
end
end
elseif legCitation[ __ ][ "qualifiers" ][ "P407" ] then --if it has language but not jurisdiction
for ___,vvvv in ipairs( legCitation[ __ ][ "qualifiers" ][ "P407" ] ) do --for each language
if legCitation[ __ ][ "qualifiers" ][ "P407" ][ ___ ][ "datavalue" ][ "value" ][ "id" ] == "Q1860" then --if language is English
leg[ "legCitation" ] = legCitation[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ]
elseif legCitation[ __ ][ "qualifiers" ][ "P407" ][ ___ ][ "datavalue" ][ "value" ][ "id" ] == "Q9309" then --if langauge is Welsh
leg[ "legCitationCy" ] = legCitation[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ]
end
end
else
leg[ "legCitation" ] = legCitation[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ] --if no relevant qualifiers
end
else
leg[ "legCitation" ] = legCitation[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ] --if no qualifiers
end
end
--legislation.gov.uk ID
legGovUK = mw.wikibase.getBestStatements( qid, 'P3343' )
for __,vv in ipairs( legGovUK ) do
leg[ "legGovUK" ] = "https://www.legislation.gov.uk/id/" .. legGovUK[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ]
end
end
o = leg[ "legSession" ]
return o
end
return p