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