Module:Id increment: Difference between revisions

From Visual Data Wiki
Jump to navigation Jump to search
No edit summary
Tag: Reverted
No edit summary
 
(16 intermediate revisions by the same user not shown)
Line 4: Line 4:
     local maxNumber = 0
     local maxNumber = 0


     -- Iteriere durch alle Seiten im Namensraum 0
     -- API-Anfrage, um alle Seiten im Namensraum 0 zu erhalten
     -- for _, pageTitle in ipairs(mw.site.namespaces[0].subpages) do
     local apiUrl = mw.util.wikiScript('api') .. '?action=query&list=allpages&apnamespace=0&aplimit=max&format=json'
     for i = 1, 10000 do
     local response = mw.api.get(apiUrl)
        local _, _, number = string.find(pageTitle, "projects/(%d+)")


         if number then
    -- Überprüfe die Antwort
            local currentNumber = tonumber(number)
    if response and response.query and response.query.allpages then
            if currentNumber and currentNumber > maxNumber then
         for _, page in ipairs(response.query.allpages) do
                maxNumber = currentNumber
            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

Latest 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&format=json'
    local response = mw.api.get(apiUrl)

    -- Überprüfe die Antwort
    if response and response.query and response.query.allpages then
        for _, page in ipairs(response.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

    return maxNumber + 1
end

return p