Module:Id increment: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
local maxNumber = 0 | local maxNumber = 0 | ||
local | -- API-Anfrage, um alle Seiten im Namensraum 0 zu erhalten | ||
local apiUrl = mw.util.wikiScript('api') .. '?action=query&list=allpages&apnamespace=0&aplimit=max' | |||
local response = mw.http.get(apiUrl) | |||
-- Überprüfe die Antwort | |||
if response and response ~= '' then | |||
local data = mw.text.jsonDecode(response) | |||
if data and data.query and data.query.allpages then | |||
for _, page in ipairs(data.query.allpages) do | |||
local pageTitle = page.title | |||
local _, _, number = string.find(pageTitle, "Projekt/(%d+)") | |||
if number then | |||
local currentNumber = tonumber(number) | |||
if currentNumber and currentNumber > maxNumber then | |||
maxNumber = currentNumber | |||
end | |||
end | |||
end | end | ||
end | end | ||
Line 21: | Line 29: | ||
end | end | ||
return p | return p | ||
Revision as of 10:06, 12 March 2024
Documentation for this module may be created at Module:Id increment/doc
local p = {}
function p.findMaxProjectNumber()
local maxNumber = 0
-- API-Anfrage, um alle Seiten im Namensraum 0 zu erhalten
local apiUrl = mw.util.wikiScript('api') .. '?action=query&list=allpages&apnamespace=0&aplimit=max'
local response = mw.http.get(apiUrl)
-- Überprüfe die Antwort
if response and response ~= '' then
local data = mw.text.jsonDecode(response)
if data and data.query and data.query.allpages then
for _, page in ipairs(data.query.allpages) do
local pageTitle = page.title
local _, _, number = string.find(pageTitle, "Projekt/(%d+)")
if number then
local currentNumber = tonumber(number)
if currentNumber and currentNumber > maxNumber then
maxNumber = currentNumber
end
end
end
end
end
return maxNumber + 1
end
return p