Module:Id increment: Difference between revisions

From Visual Data Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 4: Line 4:
     local maxNumber = 0
     local maxNumber = 0


     local allPages = mw.site.stats.pagesInNamespace( 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)


--[[  for _, page in ipairs(allPages) do
    -- Überprüfe die Antwort
        local pageTitle = page.title.text
    if response and response ~= '' then
        local _, _, number = string.find(pageTitle, "Projekt/(%d+)")
        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
                if number then
            local currentNumber = tonumber(number)
                    local currentNumber = tonumber(number)
            if currentNumber and currentNumber > maxNumber then
                    if currentNumber and currentNumber > maxNumber then
                maxNumber = currentNumber
                        maxNumber = currentNumber
                    end
                end
             end
             end
         end
         end
Line 21: Line 29:
end
end


return p --]]
return p
 
end
return allPages

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