Jump to content

Module:Legislationuk/test

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Theknightwho (talk | contribs) at 08:36, 19 January 2022. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
local p = {}

function p.main( frame )
	if frame:getParent().args[ 1 ] then args = frame:getParent().args else args = frame.args end
	local qid = ""
	local o = ""
	local leg = {}
	local legShort = ""
	local legLong = ""
	local legDate = ""
	local legCitation = ""
	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 ) ) }
		--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
				for ___,vvv in ipairs( legCitation[ __ ][ "qualifiers" ] ) do --for each qualifier
					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
					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" ][ "P1001" ][ ____ ][ "datavalue" ][ "value" ][ "id" ] == "Q1860" then --if language is English
								leg[ "legCitation" ] = legCitation[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ]
							elseif legCitation[ __ ][ "qualifiers" ][ "P1001" ][ ____ ][ "datavalue" ][ "value" ][ "id" ] == "Q9309" then --if langauge is Welsh
								leg[ "legCitationCy" ] = legCitation[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ]
							end
						end
					end
				end
			else
				leg[ "legCitation" ] = legCitation[ __ ][ "mainsnak" ][ "datavalue" ][ "value" ] --if no qualifiers
			end
		end
	end
	o = leg[ "legCitation" ]
	return o
end

return p