وحدة:ملعب/وهراني/QS

من أرابيكا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
local p = {}

function p.make(args)

	local qsCommand 
	if(args.qid) then qsCommand = {'$1	$4	$3'} 
	else qsCommand= 
				{ 
				'CREATE'
				,'LAST	Lar	"$2"'
				,'LAST	Len	"Category:Pages using Wikidata property $1"'
				,'LAST	Lfr	"Catégorie:Page utilisant $2"'
				,'LAST	Sarwiki	"$2"'
				,'LAST	P31	Q4167836'
				,'LAST	P1659	$1'
				,'LAST	P971	Q24514938'
				,'LAST	P971	Q40218570'
				}
	end
		

	-- convert QS table to a string
	local QS   = ''     -- quick_statements final string
	if #qsCommand>0 then
		local qsHeader  = 'https://tools.wmflabs.org/quickstatements/#v1='
		local qsWrapper = ' [[File:Commons_to_Wikidata_QuickStatements.svg|15px|link=%s]]'

		QS = mw.ustring.gsub(table.concat( qsCommand, '||'), '\t', "|")

        QS = mw.ustring.gsub(QS, '$1', args.property or "")
        QS = mw.ustring.gsub(QS, '$2', args.pagename or "")
        QS = mw.ustring.gsub(QS, '$3', args.qid or "")
        QS = mw.ustring.gsub(QS, '$4', args.property2 or "P2875")
        
        QS = mw.uri.encode(QS,'PATH')
        
		QS = string.format(qsWrapper, qsHeader .. QS)
	end
	return QS
end

function p.main(frame)
	-- switch to lowercase parameters to make them case independent
	local args = {}
	for name, value in pairs( frame:getParent().args ) do 
		if value ~= '' then -- nuke empty strings
			local name1 = string.gsub( string.lower(name), ' ', '_')
			args[name1] = value
		end
	end
	for name, value in pairs( frame.args ) do 
		if value ~= '' then -- nuke empty strings
			local name1 = string.gsub( string.lower(name), ' ', '_')
			args[name1] = value
		end
	end

	-- call the inner "core" function
	--mw.logObject(args)
	
    if(type(args.property) == 'string'
    	and (type(args.qid) == 'string' or  type(args.pagename) == 'string')) 
    then 
    	return p.make(args) 
    end
	return nil 
end

return p