Modul:RecentChangesTemplate: Porovnání verzí

Z Wikislovníku
Skočit na navigaci Skočit na vyhledávání
Smazaný obsah Přidaný obsah
Auvajs (diskuse | příspěvky)
ul misto ol
2x -<p>
Řádek 178: Řádek 178:
if showZoO then
if showZoO then
out = out .. "<p>— probíhající</th>"
out = out .. "— probíhající</th>"
out = out .. "<td class=\"hlist\"><ul>"
out = out .. "<td class=\"hlist\"><ul>"
for a in pairs (ZoO_Probihajici) do
for a in pairs (ZoO_Probihajici) do
Řádek 185: Řádek 185:
out = out .. "</ul><small>Viz též [[:Kategorie:Údržba:Ověřit]]</small></td></tr>"
out = out .. "</ul><small>Viz též [[:Kategorie:Údržba:Ověřit]]</small></td></tr>"
else
else
out = "<p>— nedávno skončené</th>"
out = "— nedávno skončené</th>"
out = out .. "<td class=\"hlist\"><ul>"
out = out .. "<td class=\"hlist\"><ul>"
for a in pairs (ZoO_Preskrtle) do
for a in pairs (ZoO_Preskrtle) do

Verze z 1. 8. 2016, 08:28

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[line], '^%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") 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
	
	for a in pairs (KodStranky) do
		if mw.ustring.match (KodStranky[a], "^%s*==%s*Aktuální hlasování%s*==%s*$") then
			line_nadpis = a
		end
		if mw.ustring.match (KodStranky[a], "^%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[line_nadpis + a], "^%s*$") then	
			local odkaz = mw.ustring.gsub (KodStranky[line_nadpis + a], "^[*#]%s*", "")
			local _,_,stranka = mw.ustring.find(odkaz, "^[[][[]([^]|]*)")
			local _,_,textOdkazu = mw.ustring.find(odkaz, "^[[][[][^]|]*[|]*([^]]*)[]][]]$")
			
			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["pro"] = 0
	Udaje["proti"] = 0
	Udaje["zdrzuji_se"] = 0

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

	return Udaje
end
function p.test (frame)
	local img_pro = "[[Soubor:Symbol support vote.svg|12px|link=|alt=počet hlasujících pro]]"
	local img_proti = "[[Soubor:Symbol oppose vote.svg|12px|link=|alt=počet hlasujících proti]]"
	local img_zdrzujise = "[[Soubor:Symbol abstain vote.svg|12px|link=|alt=počet zdržujících se hlasování]]"
	
	local WantedPages, OrphanedPages = require ("Modul:RecentChangesTemplate/AutoPages")
	local Wanted = {}
	local Orphaned = {}
	local stats = mw.site.stats
	
	for i=1,5 do
		math.randomseed( os.time())
		local rand = math.random ( (i*1000)-999, i*1000)
		table.insert(Wanted, WantedPages[rand][1])
	--	table.insert(Orphaned, OrphanedPages[rand])
	end
	
	local out = ""
	local showTable = false
	local showZoO = false
	local showZoO_old = false
	local showVotes = 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 showZoO or showZoO_old or showVotes then
		showTable = true
	end
	
	if showTable then
		out = "<div class=\"breaking-news\">"
		out = out .. "<table>"
		if showZoO or showZoO_old then
			out = out .. "<tr><th>[[Wikislovník:Žádost o ověření|žádosti o ověření]]"
		
			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>[[Wikislovník:Žádost o ověření#" .. ZoO_Probihajici[a] .. "|" .. ZoO_Probihajici[a] .. "]]</li>"
				end
				out = out .. "</ul><small>Viz též [[:Kategorie:Údržba:Ověřit]]</small></td></tr>"
			else
				out = "— nedávno skončené</th>"
				out = out ..  "<td class=\"hlist\"><ul>"
				for a in pairs (ZoO_Preskrtle) do
					out = out .. "<li>[[Wikislovník:Žádost o ověření#" .. ZoO_Preskrtle[a] .. "|" .. ZoO_Preskrtle[a] .. "]]</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>[[Wikislovník:Žádost o ověření#" .. ZoO_Preskrtle[a] .. "|" .. ZoO_Preskrtle[a] .. "]]</li>"
				end
				out = out .. "</ul></td></tr>"
			end
	end
	
		if showVotes then
			out = out .. "<tr><th>probíhající [[Wikislovník:Hlasování|hlasování]]</th><td><ul>"
			for a in pairs (Hlasovani) do
				out = out .. "<li>[[" .. Hlasovani[a][1] .. "|" .. Hlasovani[a][2] .. "]]"
				if Hlasovani[a][3] then
					Udaje_o_hlasovani = UdajeHlasovani(Hlasovani[a][1])
					if Udaje_o_hlasovani["zacatek"] ~= nil and Udaje_o_hlasovani["zacatek"] ~= "" and Udaje_o_hlasovani["konec"] ~= nil and Udaje_o_hlasovani["konec"] ~= "" then
						out = out .. " (od " .. Udaje_o_hlasovani["zacatek"] .. " do " .. Udaje_o_hlasovani["konec"] .. ") " 
					end
					out = out .. img_pro .. " " .. Udaje_o_hlasovani["pro"] .. " " .. img_proti .. " " .. Udaje_o_hlasovani["proti"] .. " " .. img_zdrzujise .. " " .. Udaje_o_hlasovani["zdrzuji_se"]
				end	
				out = out .. "</li>"
			end
			out = out .. "</ul></td></tr>"
		end
			out = out .. "<tr><th>přidejte se</th><td class=\"hlist\">5 náhodných chybějících stránek: <ul>"
			for i=1,5 do
				out = out .. "<li>[[" .. Wanted[i] .. "]]</li>"
			end
			out = out .. "</ul></td></tr>"
		out = out .. "</table></div>"		
	end		
		
	
	return out
end

return p