Module:Video

From Heroes 3 wiki
Revision as of 00:36, 13 February 2024 by Imahero (talk | contribs)
Jump to navigation Jump to search

usage

unknown file

{{#invoke:video|file|unknown file}}


found video

[[File:{{#invoke:video|file|RoE 1.0 CD-Heroes3-DATA-HEROES3 VID-EVIL1A-smk-EVIL1A}}|200px]]

File:Yes

found gif

This one will fail to find anything with webm because of the added text to the end. Then it will cut off the last two sections separated by a dash and so actually find a gif that matches:

[[File:{{#invoke:video|file|RoE 1.0 CD-Heroes3-DATA-HEROES3 VID-EVIL1A-smk-EVIL1Axyz123}}|200px]]

File:Yes


local p = {}

function p.file( frame )
	-- fileexists = frame:expandTemplate{title = 'exist', args = {'file:'..frame.args[1]..'.webm', 'yes'}}
	-- fileexists = frame:expandTemplate{title = 'exist', args = {'file:'..frame.args[1]..'.ogg', 'yes'}}
	
	local lines = p.split(frame.args[1], '-')
	local parent2 = ''
	for i, line in ipairs(lines) do
	   parent2 = parent2 .. line
		if i + 2 >= #lines then
			break
		else
			parent2 = parent2 .. '-'
		end
	end
	
	fileexists = frame:expandTemplate{title = 'exist', args = {'file:'..parent2..'.png', 'yes'}}
	return fileexists
	-- if frame.args[1] == 'if'  then
	-- 	return 'if'
	-- elseif frame.args[1] == 'elseif'  then
	-- 	return 'elseif'
	-- else
	-- 	return 'else'
	-- end
end

function p.split(str, sep)
   local result = {}
   local regex = ("([^%s]+)"):format(sep)
   for each in str:gmatch(regex) do
      table.insert(result, each)
   end
   return result
end

return p