Module:Liste7

La documentation pour ce module peut être créée à Module:Liste7/doc

local p = {}

function p.main(frame)
	if frame == mw.getCurrentFrame() then
		args = require('Module:ProcessArgs').merge(true)
	else
		frame = mw.getCurrentFrame()
	end
	
	local query = {}
	for k, v in pairs(args) do
		if string.sub(k, 0, 2) == 'q?' then
			query[string.sub(k, 3)] = v
		end
	end
	
	supports={}	
	local result = mw.ext.cargo.query('Supports','idSupport,video',{groupBy = 'idSupport',limit=3000})
	for d, row in ipairs(result) do
		supports[row['idSupport']] = row['video']
	end
	
	result = mw.ext.cargo.query('Sequences',frame.args.fields,{where = frame.args.where,groupBy = '_pageName'})
	
	--lieux = {{titre = 'Strasbourg', lat = 48.582, lon = 7.750, distance = 5}, {titre = 'Sélestat', lat = 48.260, lon = 7.452, distance = 10 }, {titre = 'Colmar'}, {titre = 'Mulhouse'}}
	if #result < 6 then
		return 'Requête trop sélective, essayez d\'élargir pour avoir au moins 6 résultats'
	else
		math.randomseed(os.time() + #result + result[1]['duree'])
		local i = 0
		liste = {}
		while i < 6 do
			nb = math.random(1,#result)
			auto = math.random(0,2)
			if auto == 0 then
				result[nb]['Autoplay'] = 'autoplay'
			end
			table.insert(liste,table.remove(result,nb))
			i = i+1
		end
	
		local retour = '<div id="bandeau-video">'
		for _, row in ipairs(liste) do
			retour = retour .. frame:expandTemplate({ title = "VideoAccueil", args = row})
		end 
	
		return  retour .. '</div>'
	end

end 
return p