Module:Video: Difference between revisions

From Heroes 3 wiki
Jump to navigation Jump to search
No edit summary
(need to fix this first)
Line 2: Line 2:


function p.file( frame )
function p.file( frame )
if frame.args[2] and frame.args[2] ~= 'none' then
-- if frame.args[2] and frame.args[2] ~= 'none' then
fileexists = frame:expandTemplate{title = 'exist', args = {'file:'..frame.args[1]..'-'..frame.args[2]..'-voice.webm', 'yes'}}
-- fileexists = frame:expandTemplate{title = 'exist', args = {'file:'..frame.args[1]..'-'..frame.args[2]..'-voice.webm', 'yes'}}
if fileexists == 'yes' then
-- if fileexists == 'yes' then
return frame.args[1]..'-'..frame.args[2]..'-voice.webm'
-- return frame.args[1]..'-'..frame.args[2]..'-voice.webm'
end
-- end
end
-- end
for _, source in pairs({'RoE', 'AB', 'SoD', 'HC', 'HotA'}) do
-- for _, source in pairs({'RoE', 'AB', 'SoD', 'HC', 'HotA'}) do
if frame.args[1]:match('^' .. source) == source then
-- if frame.args[1]:match('^' .. source) == source then
fileexists = frame:expandTemplate{title = 'exist', args = {'file:'..frame.args[1]..'-'..source..'-voice.webm', 'yes'}}
-- fileexists = frame:expandTemplate{title = 'exist', args = {'file:'..frame.args[1]..'-'..source..'-voice.webm', 'yes'}}
if fileexists == 'yes' then
-- if fileexists == 'yes' then
return frame.args[1]..'-'..source..'-voice.webm'
-- return frame.args[1]..'-'..source..'-voice.webm'
end
-- end
break
-- break
end
-- end
end
-- end


fileexists = frame:expandTemplate{title = 'exist', args = {'file:'..frame.args[1]..'.webm', 'yes'}}
fileexists = frame:expandTemplate{title = 'exist', args = {'file:'..frame.args[1]..'.webm', 'yes'}}

Revision as of 22:30, 19 February 2024

usage

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

{{#invoke:video|file|RoE 1.0 CD-Heroes3-DATA-HEROES3 VID-EVIL1A-smk-EVIL1A}}

RoE 1.0 CD-Heroes3-DATA-HEROES3 VID-EVIL1A-smk-EVIL1A.webm


local p = {}

function p.file( frame )
	-- if frame.args[2] and frame.args[2] ~= 'none' then
	-- 	fileexists = frame:expandTemplate{title = 'exist', args = {'file:'..frame.args[1]..'-'..frame.args[2]..'-voice.webm', 'yes'}}
	-- 	if fileexists == 'yes' then
	-- 		return frame.args[1]..'-'..frame.args[2]..'-voice.webm'
	-- 	end	
	-- end
	
	-- for _, source in pairs({'RoE', 'AB', 'SoD', 'HC', 'HotA'}) do
	-- 	if frame.args[1]:match('^' .. source) == source then
	-- 		fileexists = frame:expandTemplate{title = 'exist', args = {'file:'..frame.args[1]..'-'..source..'-voice.webm', 'yes'}}
	-- 		if fileexists == 'yes' then
	-- 			return frame.args[1]..'-'..source..'-voice.webm'
	-- 		end
	-- 		break
	-- 	end
	-- end

	fileexists = frame:expandTemplate{title = 'exist', args = {'file:'..frame.args[1]..'.webm', 'yes'}}
	if fileexists == 'yes' then
		return frame.args[1]..'.webm'
	end
	
	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

	return parent2..'.gif'
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