Modul:RecentChangesTemplate

Dobrý den, přišli jste sem a hledáte význam slova Modul:RecentChangesTemplate. V DICTIOUS najdete nejen všechny slovníkové významy slova Modul:RecentChangesTemplate, ale dozvíte se také o jeho etymologii, charakteristice a o tom, jak se říká Modul:RecentChangesTemplate v jednotném a množném čísle. Vše, co potřebujete vědět o slově Modul:RecentChangesTemplate, najdete zde. Definice slova Modul:RecentChangesTemplate vám pomůže být přesnější a správnější při mluvení nebo psaní textů. Znalost definiceModul:RecentChangesTemplate, stejně jako definice dalších slov, obohacuje vaši slovní zásobu a poskytuje vám více a lepších jazykových zdrojů.

Dokumentaci tohoto modulu lze vytvořit na stránce Nápověda:Modul:RecentChangesTemplate

p = {}
local function ZiskejKodStranky (link)
	local stranka = link
	local title = mw.title.new(stranka)
	local content = title:getContent() 

	local KodStranky = {}
	for line in mw.text.gsplit( content, '\n' ) do
		table.insert(KodStranky, line)
	end
	return KodStranky
end

local function zadosti_o_overeni ()
	KodStranky = ZiskejKodStranky ("Wikislovník:Žádost o ověření")
	
	local Overovany = {}
	local Preskrtle = {}
	for line in pairs (KodStranky) do
		local headline = mw.ustring.match( KodStranky, '^%s*==%s*(+)==%s*$' )
		if headline then
			local headline = mw.ustring.gsub (headline, "%s*$", "")
			if not mw.ustring.match(headline, "Zpochybnění hesla")  and not mw.ustring.match(headline,"Ověření hesla") and not mw.ustring.match(headline,"Neúspěšné ověření hesla") and not mw.ustring.match(headline,"Jak lze ověřit význam?") then
				headline = mw.ustring.gsub(headline, "*","")
				headline = mw.ustring.gsub(headline, "]*","")
				headline = mw.ustring.gsub(headline, ":Kategorie","Kategorie")
				local bezskrt = mw.ustring.match (headline, "<s>(.*)</s>")
				if not bezskrt then
					table.insert (Overovany, headline)
				else
					table.insert(Preskrtle, bezskrt)
				end
			end
		end
	end
	return Overovany, Preskrtle
end

local function probihajici_hlasovani ()
	KodStranky = ZiskejKodStranky ("Wikislovník:Hlasování")
	local line_nadpis = 0
	local line_nasledujici_nadpis = 0
	
	local textOdkazu = false
	
	for a in pairs (KodStranky) do
		if mw.ustring.match (KodStranky, "^%s*==%s*Aktuální hlasování%s*==%s*$") then
			line_nadpis = a
		end
		if mw.ustring.match (KodStranky, "^%s*==%s*Související stránky%s*==%s*$") then
			line_nasledujici_nadpis = a
		end
		
	end
	local pocet_radku = line_nasledujici_nadpis - line_nadpis - 1
	local a = 1
	local Hlasovani = {}
	while a < pocet_radku do
		if not mw.ustring.match (KodStranky, "^%s*$") then	
			local odkaz = mw.ustring.gsub (KodStranky, "^%s*", "")
			local _,_,stranka = mw.ustring.find(odkaz, "^(|]*)")
			if mw.ustring.sub (stranka, 1, 1) == "/" then
				if mw.ustring.sub (stranka, -1) ~= "/" then
					stranka = "Wikislovník:Hlasování" .. stranka
				else
					textOdkazu = mw.ustring.sub (stranka, 2, -2)
					stranka = "Wikislovník:Hlasování" .. mw.ustring.sub (stranka, 1, -2)
				end
			end

			if not textOdkazu then
				_,_,textOdkazu = mw.ustring.find(odkaz, "^|]**(]*)]]$")
				if not textOdkazu or textOdkazu == "" then
					textOdkazu = stranka
				end
			end
			
			if stranka then
				local stranka_s_hlasovanim = mw.title.new(stranka)
				if stranka_s_hlasovanim.id == 0 then
					table.insert(Hlasovani, {stranka, textOdkazu, false})
				else
					table.insert(Hlasovani, {stranka, textOdkazu, true})
				end
			end
		end
		a = a + 1
	end
	
	return Hlasovani
end


local function UdajeHlasovani (Hlasovani)
	KodStranky = ZiskejKodStranky (Hlasovani)
	
	local sekce_pro = false
	local sekce_proti = false
	local sekce_zdrzujise = false
	
	local Udaje = {}
	Udaje = 0
	Udaje = 0
	Udaje = 0

	for a in pairs (KodStranky) do
		if mw.ustring.match (KodStranky, "^%s*===%s*Pro%s*===%s*$") then
			sekce_pro = true
		end
		if mw.ustring.match (KodStranky, "^%s*===%s*Proti%s*===%s*$") then
			sekce_pro = false
			sekce_proti = true
		end
		if mw.ustring.match (KodStranky, "^%s*===%s*Zdržují se%s*===%s*$") then
			sekce_proti = false
			sekce_zdrzujise = true
		end
		if mw.ustring.match (KodStranky, "^%s*==%s*Komentáře%s*==%s*$") then
			sekce_zdrzujise = false
		end
		
		if sekce_pro and mw.ustring.match (KodStranky, "^#") then
			Udaje = 	Udaje + 1
		end
		if sekce_proti and mw.ustring.match (KodStranky, "^#") then
			Udaje = Udaje + 1
		end
		if sekce_zdrzujise and mw.ustring.match (KodStranky, "^#") then
			Udaje = Udaje + 1
		end
		
		temp = mw.ustring.match (KodStranky, "^*%s*Hlasování začíná*%s**(+%s*%s**%s**%s*++%s*SELČ)*")
		if temp then
			Udaje = temp
		end
		temp = mw.ustring.match (KodStranky, "^*%s*Hlasování končí*%s**(+%s*%s**%s**%s*++%s*SELČ)*")
		if temp then
			Udaje = temp
		end
		temp = mw.ustring.match (KodStranky, "^*%s*Hlasování prodlouženo do*%s**%s*(+%s*%s**%s**%s*++%s*SELČ)*")
		if temp then
			Udaje = temp
		end
	end

	return Udaje
end
function CheckIfExists (page)
	if page and page ~= "" then
		local stranka = mw.title.new(page)
		if stranka.id == 0 then
			return false
		else
			return true
		end
	else
		return nil
	end

end
	
function p.test (frame)
	local img_pro = "]"
	local img_proti = "]"
	local img_zdrzujise = "]"
	
	local seznamy = require ("Modul:RecentChangesTemplate/AutoPages")
	local sekce = require ("Modul:RecentChangesTemplate/Content")
	local MostWanted = {}
	local Wanted = {}
	local Orphaned = {}
	
	local n = 5

	for i=1,n do
		if #MostWanted < 6 then
			if WantedPages and CheckIfExists (WantedPages) == false then
				table.insert(MostWanted, {WantedPages, WantedPages})
			else
				n = n + 1
			end
		end
	
		math.randomseed( os.time())
		local rand
		if i < 6 then
			rand = math.random ( (i*1000)-999, i*1000)
		else
			rand = math.random ( n, 5000)
		end

		if #Wanted < 6 then
			if WantedPages and CheckIfExists (WantedPages) == false then
				table.insert(Wanted, WantedPages)
			else
				n = n + 1
			end
		end
		if #Orphaned < 6 then
			if OrphanedPages then
				table.insert(Orphaned, OrphanedPages)
			else
				n = n + 1
			end
		end
			
	end
	
	local out = ""
	local showTable = false
	local showZoO = false
	local showZoO_old = false
	local showVotes = false
	local showOtherSections = false
	
	local ZoO_Probihajici, ZoO_Preskrtle = zadosti_o_overeni()
	if #ZoO_Probihajici > 0 then
		showZoO = true
	end
	
	if #ZoO_Preskrtle > 0 then
		showZoO_old = true
		showZoO = true
	end
	
	local Hlasovani = probihajici_hlasovani()
	if #Hlasovani > 0 then
		showVotes = true
	end

	if #sekce > 0 then
		showOtherSections = true
	end
	
	if showZoO or showZoO_old or showVotes or showOtherSections then
		showTable = true
	end
	
	if showTable then
		out = "<div class=\"breaking-news\">"
		out = out .. "<table>"
		if showOtherSections then
			for line in pairs (sekce) do
				out = out .. "<tr><td>" .. sekce .. "</td><td class=\"hlist\"><ul><li>" .. sekce .. "</li></ul></td></tr>"
			end
		end
				
		if showZoO or showZoO_old then
			out = out .. "<tr><th>]"
		
			if showZoO then
				out = out .. " — probíhající</th>"
				out = out ..  "<td class=\"hlist\"><ul>"
				for a in pairs (ZoO_Probihajici) do
					out = out .. "<li> .. "|" .. ZoO_Probihajici .. "]]</li>"
				end
				out = out .. "</ul><small>Viz též ]</small></td></tr>"
			else
				out = out .. " — nedávno skončené</th>"
				out = out .. "<td class=\"hlist\"><ul>"
				for a in pairs (ZoO_Preskrtle) do
					out = out .. "<li> .. "|" .. ZoO_Preskrtle .. "]]</li>"
				end
				out = out .. "</ul></td></tr>"
			end
			if showZoO and showZoO_old then
				out = out .. "<tr><th>— nedávno skončené</th>"
				out = out ..  "<td class=\"hlist\"><ul>"
				for a in pairs (ZoO_Preskrtle) do
					out = out .. "<li> .. "|" .. ZoO_Preskrtle .. "]]</li>"
				end
				out = out .. "</ul></td></tr>"
			end
	end
	
		if showVotes then
			out = out .. "<tr><th>probíhající ]</th><td><ul>"
			for a in pairs (Hlasovani) do
				out = out .. "<li> .. "|" .. Hlasovani .. "]]"
				if Hlasovani then
					Udaje_o_hlasovani = UdajeHlasovani(Hlasovani)
					if Udaje_o_hlasovani ~= nil and Udaje_o_hlasovani ~= "" and Udaje_o_hlasovani ~= nil and Udaje_o_hlasovani ~= "" then
						out = out .. " (od " .. Udaje_o_hlasovani .. " do " .. Udaje_o_hlasovani .. ") " 
					end
					out = out .. img_pro .. " " .. Udaje_o_hlasovani .. " " .. img_proti .. " " .. Udaje_o_hlasovani .. " " .. img_zdrzujise .. " " .. Udaje_o_hlasovani
				end	
				out = out .. "</li>"
			end
			out = out .. "</ul></td></tr>"
		end
			if ( MostWanted and #MostWanted > 0 ) or ( Wanted and #Wanted > 0 ) or ( Orphaned and #Orphaned > 0 ) then
				out = out .. "<tr><th>přidejte se</th><td class=\"hlist\">"
			
				if MostWanted and #MostWanted > 0 then
					out = out .. "nejvíce chybějící stránky: <ul>"
					for i=1,5 do
						if MostWanted then
							out = out .. "<li> .. "]]" .. " (" .. MostWanted .. ")</li>"
						end
					end
				end
				if Wanted and #Wanted > 0 then
					out = out .. "</ul>z dalších chybějících: <ul>"
					for i=1,5 do
						if Wanted then
							out = out .. "<li> .. "]]</li>"
						end
					end
				end
				if Orphaned and #Orphaned > 0 then
					out = out .. "</ul>ze sirotčích stránek:<ul>"
					for i=1,5 do
						if Orphaned then
							out = out .. "<li> .. "]]</li>"
						end
					end
					out = out .. "</ul>"
				end
				out = out .. "</td></tr>"
			end


		out = out .. "</table></div>"		
	end		
		
	
	return out
end

return p