مَوادَس کُن گٔژھِو

Module:LimitStatements

وِکیٖپیٖڈیا پؠٹھٕ، اَکھ آزاد اِنسایکلوپیٖڈیا

"یَمہٕ ماڈیوٗلُک دَستاویز ییٚہِ Module:LimitStatements/دَستاویز جاے بَناونہٕ"

local p = {}

function p.fetchLimitedStatements(frame)
    local property = frame.args[1]  -- Property ID (e.g., P674)
    local limit = tonumber(frame.args[2]) or 5  -- Limit results (default 5)

    -- Debugging: Print what we receive
    if not property or property == "" then
        return "Error: No property ID provided. Received: " .. tostring(property)
    end

    -- Debugging: Ensure property is a string
    property = tostring(property)

    -- Get statements from Wikidata
    local statements = mw.wikibase.getBestStatements(property)

    -- Debugging: Print statements length
    if not statements or #statements == 0 then
        return "Error: No data found for property " .. property
    end

    -- Process and return only the first 'limit' statements
    local results = {}
    for i, statement in ipairs(statements) do
        if i > limit then break end
        local value = mw.wikibase.renderSnak(statement.mainsnak)
        if value then
            table.insert(results, value)
        end
    end

    return table.concat(results, ', ')
end

return p