Permanently protected module
From Wikipedia, the free encyclopedia


local p = {}



function p.check(frame)

	local taxonbarExists = require('Module:Taxonbar/exists').check

	if taxonbarExists(frame) == true then

		return ''

	else

		local resolveEntity = require( 'Module:ResolveEntityId' )

		local currentTitle = mw.title.getCurrentTitle()

		local currentItem = nil

		local categories = {

			'[[Category:Taxobox articles possibly missing a taxonbar]]' --unset if acceptable or unacceptable found

		}

		

		--preliminary exclusion criteria

		if string.match( currentTitle.text, '^List of ') then

			return ''

		end

		

		--find Wikidata item

		if currentTitle.namespace == 0 then --mainspace

			local currentEntityId = mw.wikibase.getEntityIdForCurrentPage()

			if resolveEntity._id(currentEntityId) then

				currentItem = mw.wikibase.getEntity(currentEntityId)

			else --currentEntityId == nil/unresolvable

				return categories1

			end

		else

			return ''

		end

		

		if currentItem then --currentItem should not be nil here, but check just in case

			--determine if {{Taxonbar}} is *definitely* missing, *possibly* missing, or not missing at all

			local whitelist = require( 'Module:Taxonbar/whitelist' ).whitelist

			local blacklist = require( 'Module:Taxonbar/blacklist' ).blacklist

			local acceptableInstanceOf_All = whitelist{ args = { 'all' } }

			local unacceptableInstanceOf = blacklist{ args = {} }

			

			local acceptableCount = 0

			local unacceptableCount = 0

			for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of

				local instanceOf = instanceOfState.mainsnak.datavalue.value.id

				if acceptableInstanceOf_AllinstanceOf then

					acceptableCount = acceptableCount + 1

				elseif unacceptableInstanceOfinstanceOf then

					unacceptableCount = unacceptableCount + 1

				end

			end

			for _, subclassOfState in pairs ( currentItem:getBestStatements('P279') ) do --subclass of

				local subclassOf = subclassOfState.mainsnak.datavalue.value.id

				if acceptableInstanceOf_AllsubclassOf then

					acceptableCount = acceptableCount + 1

				elseif unacceptableInstanceOfsubclassOf then

					unacceptableCount = unacceptableCount + 1

				end

			end

			

			if acceptableCount > 0 then

				categories1 = ''

				categories2 = '[[Category:Taxobox articles missing a taxonbar]]'

			elseif unacceptableCount > 0 then

				categories1 = ''

				categories2 = ''

			end

			

			return table.concat(categories)

			

		else

			return ''

		end

	end

end



return p
Permanently protected module
From Wikipedia, the free encyclopedia


local p = {}



function p.check(frame)

	local taxonbarExists = require('Module:Taxonbar/exists').check

	if taxonbarExists(frame) == true then

		return ''

	else

		local resolveEntity = require( 'Module:ResolveEntityId' )

		local currentTitle = mw.title.getCurrentTitle()

		local currentItem = nil

		local categories = {

			'[[Category:Taxobox articles possibly missing a taxonbar]]' --unset if acceptable or unacceptable found

		}

		

		--preliminary exclusion criteria

		if string.match( currentTitle.text, '^List of ') then

			return ''

		end

		

		--find Wikidata item

		if currentTitle.namespace == 0 then --mainspace

			local currentEntityId = mw.wikibase.getEntityIdForCurrentPage()

			if resolveEntity._id(currentEntityId) then

				currentItem = mw.wikibase.getEntity(currentEntityId)

			else --currentEntityId == nil/unresolvable

				return categories1

			end

		else

			return ''

		end

		

		if currentItem then --currentItem should not be nil here, but check just in case

			--determine if {{Taxonbar}} is *definitely* missing, *possibly* missing, or not missing at all

			local whitelist = require( 'Module:Taxonbar/whitelist' ).whitelist

			local blacklist = require( 'Module:Taxonbar/blacklist' ).blacklist

			local acceptableInstanceOf_All = whitelist{ args = { 'all' } }

			local unacceptableInstanceOf = blacklist{ args = {} }

			

			local acceptableCount = 0

			local unacceptableCount = 0

			for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of

				local instanceOf = instanceOfState.mainsnak.datavalue.value.id

				if acceptableInstanceOf_AllinstanceOf then

					acceptableCount = acceptableCount + 1

				elseif unacceptableInstanceOfinstanceOf then

					unacceptableCount = unacceptableCount + 1

				end

			end

			for _, subclassOfState in pairs ( currentItem:getBestStatements('P279') ) do --subclass of

				local subclassOf = subclassOfState.mainsnak.datavalue.value.id

				if acceptableInstanceOf_AllsubclassOf then

					acceptableCount = acceptableCount + 1

				elseif unacceptableInstanceOfsubclassOf then

					unacceptableCount = unacceptableCount + 1

				end

			end

			

			if acceptableCount > 0 then

				categories1 = ''

				categories2 = '[[Category:Taxobox articles missing a taxonbar]]'

			elseif unacceptableCount > 0 then

				categories1 = ''

				categories2 = ''

			end

			

			return table.concat(categories)

			

		else

			return ''

		end

	end

end



return p

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook