Moduł:Poczekalnia
Wygląd
Użycie[edytuj kod]
Moduł jest używany na stronie Wikipedia:Poczekalnia/editnotice i służy do doprecyzowania zawartej tam wiadomości. Bez użycia Lua nie ma możliwości rozpoznania po nazwie podstrony, czego dotyczy dyskusja.
{{#invoke:Poczekalnia|Nazwa}}[edytuj kod]
Funkcja zwracająca pełną nazwę artykułu, kategorii, szablonu lub innej strony wraz z prefiksem przestrzeni nazw dyskutowanej w Poczekalni. Nie przyjmuje żadnych parametrów. Wywołana poza poczekalnią zwraca pusty tekst.
{{#invoke:Poczekalnia|Nad}}[edytuj kod]
Funkcja zwracająca fragment tekstu linkującego do tematu dyskusji w Poczekalni. Nie przyjmuje żadnych parametrów. Wywołana poza Poczekalnią zwraca pusty tekst.
Błędy[edytuj kod]
Błędy należy zgłaszać na stronie Wikipedia:Kawiarenka/Kwestie techniczne.
Powyższy opis jest dołączany ze strony Moduł:Poczekalnia/opis. (edytuj | historia)
Zobacz podstrony tego modułu. |
local function PageName()
local restorePageName = {
"^Wikipedia:Poczekalnia/artykuły/%d%d%d%d:%d%d:%d%d:(.+)$",
"^Wikipedia:Poczekalnia/biografie/%d%d%d%d:%d%d:%d%d:(.+)$",
"^Wikipedia:Poczekalnia/naprawa/%d%d%d%d:%d%d:%d%d:(.+)$",
"^Wikipedia:Poczekalnia/kwestie techniczne/%d%d%d%d:%d%d:%d%d:(.+)$",
}
local title = mw.title.getCurrentTitle().prefixedText
for _, v in ipairs(restorePageName) do
local pageName = mw.ustring.match(title, v)
if pageName then
return pageName
end
end
end
local function searchDnuPrefix(date, subjectPattern)
local function scanContent(titleText, pattern)
local archiveTitle = mw.title.new(titleText)
if not archiveTitle.exists then
return false
end
local result = mw.ustring.match(archiveTitle:getContent(), pattern)
return result
end
local roots = {
{ "Wikipedia:Poczekalnia/Załatwione artykuły ", "Wikipedia:Poczekalnia/artykuły/%d%d%d%d:%d%d:%d%d:" },
{ "Wikipedia:Poczekalnia/Załatwione biografie ", "Wikipedia:Poczekalnia/biografie/%d%d%d%d:%d%d:%d%d:" },
{ "Wikipedia:Poczekalnia/Załatwione naprawa ", "Wikipedia:Poczekalnia/naprawa/%d%d%d%d:%d%d:%d%d:" },
{ "Wikipedia:Poczekalnia/Załatwione kwestie techniczne ", "Wikipedia:Poczekalnia/kwestie techniczne/%d%d%d%d:%d%d:%d%d:" },
}
local baseDate = mw.getContentLanguage():formatDate("F Y", date, true)
for _, v in ipairs(roots) do
local pattern = "{{("..v[2]..")"..subjectPattern.."}}"
local result = scanContent(v[1].."("..baseDate..")", pattern)
if result then
return result
end
local i = 1
while i < 9 do
result = scanContent(v[1].."("..baseDate.."/"..tostring(i)..")", pattern)
if result then
return result
end
if result == false then
break
end
i = i + 1
end
end
end
return {
["Nazwa"] = PageName,
["Nad"] = function()
local format = {
-- article
[0] = function(title)
return "artykułu „[["..title.text.."]]”"
end,
-- Template
[10] = function(title)
return "szablonu <tt>{{[["..title.prefixedText.."|"..title.text.."]]}}</tt>"
end,
-- Category
[14] = function(title)
return "kategorii „[[:"..title.prefixedText.."|"..title.text.."]]”"
end,
-- otherwise
[false] = function(title)
return "strony „[["..title.prefixedText.."]]”"
end,
}
local pageName = PageName()
if pageName then
local title = mw.title.new(pageName)
local formatter = format[title.namespace] or format[false]
return formatter(title)
end
end,
["Znajdź DNU"] = function()
local currentTitle = mw.title.getCurrentTitle()
if not currentTitle.isTalkPage then
-- to nie dyskusja
return
end
local subjectTitle = currentTitle.subjectPageTitle
if subjectTitle.namespace ~= 0 then
-- dyskusja nie dotyczy artykułu
return
end
if subjectTitle.exists then
-- artykuł istnieje
return
end
local subjectPattern = mw.ustring.gsub(require("Moduł:String")._escapePattern(subjectTitle.text), " ", "[ _]")
local timestamp = mw.getContentLanguage():formatDate("Y-m-d", nil, true)
local result = searchDnuPrefix(timestamp, subjectPattern)
or searchDnuPrefix(timestamp.." -1 month", subjectPattern)
or searchDnuPrefix(timestamp.." -2 months", subjectPattern)
if result then
return result..subjectTitle.text
end
end,
}