Modul:Denní přehled
Dokumentaci tohoto modulu lze vytvořit na stránce Nápověda:Modul:Denní přehled
-- @brief
-- Backend for {{Denní přehled}}.
--
-- @author
-- [[meta:User:Danny B.]]
local _module = {}
----------------------------------------
local DateTime = require( "Module:DateTime" )
local Error = require( "Module:Error" )
local Svatek = require( "Module:Svátek" )
function _module.print( frame )
local titleObject = mw.title.getCurrentTitle()
if titleObject.namespace ~= 0 then
return
end
local output = ""
local errorData = { template = "Denní přehled" }
local day, month, year, form = DateTime.parseVerbalDate( titleObject.text )
if form ~= "DMY" then
errorData.text = "Název „" .. titleObject.text .. "“ neodpovídá názvu denního přehledu."
errorData.category = "Zkontrolovat název stránky s vloženou šablonou " .. errorData.template
errorData.template = nil
output = output .. Error.getText( errorData )
end
if output == "" then
local dailyOverview = {
editintro = "Wikizprávy:Kostry stránek/Denní přehled/návod",
preload = "Wikizprávy:Kostry stránek/Denní přehled"
}
local holidayDate = string.sub( titleObject.text, 1, -6 )
local timestamp = DateTime.getTimestamp( { day = day, month = month, year = year } )
local dow = DateTime.days[os.date( "*t", os.time( { day = day, month = month, year = year } ) ).wday].name
local dayPre = os.date( "*t", os.time( { day = day - 1, month = month, year = year } ) )
local dayPost = os.date( "*t", os.time( { day = day + 1, month = month, year = year } ) )
local verbalDatePre = mw.ustring.format( "%d. %s %d", dayPre.day, DateTime.months[dayPre.month].name, dayPre.year )
local verbalDatePost = mw.ustring.format( "%d. %s %d", dayPost.day, DateTime.months[dayPost.month].name, dayPost.year )
local pagePre = ""
local pagePost = ""
timestamp = 100000000000000 - tonumber( timestamp )
output = output .. mw.ustring.format( "{{DISPLAYTITLE:<time datetime=\"%04d-%02d-%02d\">%s</time>}}", year, month, day, titleObject.text )
output = output .. mw.ustring.format( "[[Kategorie:%s| ]]", titleObject.text )
output = output .. mw.ustring.format( "[[Kategorie:Denní přehledy| %d]]", timestamp )
local pageText = titleObject:getContent()
if pageText then
local tests = {
{
"\n%*",
"bez zpráv"
}, {
"== Svátky ==\n{{Svátek}}",
"s nejednotným zápisem svátků"
}, {
"\n== *Z domova *==\n",
"bez sekce Z domova"
}, {
"\n== *Ze světa *==\n",
"bez sekce Ze světa"
}, {
"\n== *Věda a technika *==\n",
"bez sekce Věda a technika"
}, {
"\n== *Kultura *==\n",
"bez sekce Kultura"
}, {
"\n== *Ekonomika *==\n",
"bez sekce Ekonomika"
}, {
"\n== *Sport *==\n",
"bez sekce Sport"
}, {
"\n== *Úmrtí *==\n",
"bez sekce Úmrtí"
}, {
"\n== *Zdroje *==\n",
"bez sekce Zdroje"
}
}
for _, test in ipairs( tests ) do
if not mw.ustring.match( pageText, test[1] ) then
output = output .. mw.ustring.format( "[[Kategorie:Monitoring:Denní přehledy %s| %d]]", test[2], timestamp )
end
end
end
titleObject = mw.title.new( verbalDatePre )
-- expensive++
pagePre = mw.ustring.format( "[[%s|◄ %s]]", verbalDatePre, verbalDatePre )
if not titleObject.exists then
pagePre = pagePre .. " <span title=\"Založit denní přehled pro " .. verbalDatePre .. "\">[" ..
titleObject:fullUrl({
action = "edit",
editintro = dailyOverview.editintro,
preload = dailyOverview.preload,
summary = verbalDatePre
}) ..
" ✍]</span>"
end
titleObject = mw.title.new( verbalDatePost )
-- expensive++
if not titleObject.exists then
pagePost = pagePost .. "<span title=\"Založit denní přehled pro " .. verbalDatePost .. "\">[" ..
titleObject:fullUrl({
action = "edit",
editintro = dailyOverview.editintro,
preload = dailyOverview.preload,
summary = verbalDatePost
}) ..
" ✍]</span> "
end
pagePost = mw.ustring.format( "%s[[%s|%s ►]]", pagePost, verbalDatePost, verbalDatePost )
output = output .. "<div id=\"DailyNewsHeader\" class=\"plainlinks\">\n"
output = output .. mw.ustring.format( "%s • %s • %s\n", pagePre, dow, pagePost )
output = output .. "__TOC__\n"
output = output .. "</div>"
if pageText and not mw.ustring.match( pageText, "== *Svátky *==" ) then
output = output .. "\n\n== Svátky ==\n"
output = output .. ( Svatek.namedayTable[holidayDate] and "; Jmeniny\n: " .. Svatek.namedayTable[holidayDate] .. "\n" or "" )
output = output .. ( Svatek.holidayTable[holidayDate] and "; Státní svátky a významné dny\n:" .. Svatek.holidayTable[holidayDate] .. "\n" or "" )
output = mw.ustring.gsub( output, "Denní přehledy s nejednotným zápisem svátků", "Denní přehledy s automatickým zápisem svátků" )
end
end
output = mw.text.trim( output )
output = frame:preprocess( output )
return output
end
----------------------------------------
return _module