The VNDev Wiki underwent maintenance on March 14th, 2025, which is now complete. Semantic MediaWiki and associated extensions have been updated, and Scribunto and Semantic Scribunto have been installed. If you encounter any bugs or unexpected behavior, especially with VN jam statistics pages, please let the wiki admins know via the DevTalk Discord server.

Module:Jam series detailed stats: Difference between revisions

From VNDev Wiki
m count a column
this is probably everything? let's test
Line 14: Line 14:
     local numIntervals = math.ceil( maxCount[1].count / width )
     local numIntervals = math.ceil( maxCount[1].count / width )


     local zeroSubQ = { '[[Jam occurrence:+]]', '[[Has entries::0]]' }
     local zeroSubQ = { '[[Jam occurrence:+]]', '[[Has ' .. statType .. '::0]]' }
     zeroSubQ.format = 'count'
     zeroSubQ.format = 'count'
     local zeroCount = mw.smw.ask( zeroSubQ )
     local zeroCount = mw.smw.ask( zeroSubQ )
Line 20: Line 20:
     local zeroCol = { 'Has sort order=0', 'Has label=None', 'Has count=' .. mw.smw.ask( zeroSubQ ) }
     local zeroCol = { 'Has sort order=0', 'Has label=None', 'Has count=' .. mw.smw.ask( zeroSubQ ) }


     return zeroCount
    local resultZero = mw.smw.subobject( zeroCol )
    local resultFinal = false
    if resultZero == true then resultFinal = true end
 
    for i=1,numIntervals do
        local subQ = { '[[Jam occurrence:+]]', '[[Has ' .. statType .. '::>' .. (width * (i-1)) + 1 .. ']]', '[[Has ' .. statType .. '::<' .. width * i ..']]' }
        subQ.format = 'count'
        local resultI = mw.smw.subobject ( { 'Has sort order=' .. i, 'Has label=' .. (width * (i-1)) + 1 .. '-' .. width * i, 'Has count=' .. mw.smw.ask( subQ ) } )
        if resultI ~= true then resultFinal = false end
    end
 
     return resultFinal


end
end


return p
return p

Revision as of 14:06, 16 March 2025

Documentation for this module may be created at Module:Jam series detailed stats/doc

local p = {}

function p.prepHistData( frame )

    local statType = frame.args['statType']
    local width = frame.args['width']
    local q = { '[[Jam occurrence:+]]', '?Has ' .. statType .. '=count' }
    q.sort = 'Has ' .. statType
    q.order = 'descending'
    q.limit = 1
    q.mainheader = '-'
    local maxCount = mw.smw.ask( q )

    local numIntervals = math.ceil( maxCount[1].count / width )

    local zeroSubQ = { '[[Jam occurrence:+]]', '[[Has ' .. statType .. '::0]]' }
    zeroSubQ.format = 'count'
    local zeroCount = mw.smw.ask( zeroSubQ )

    local zeroCol = { 'Has sort order=0', 'Has label=None', 'Has count=' .. mw.smw.ask( zeroSubQ ) }

    local resultZero = mw.smw.subobject( zeroCol )
    local resultFinal = false
    if resultZero == true then resultFinal = true end

    for i=1,numIntervals do
        local subQ = { '[[Jam occurrence:+]]', '[[Has ' .. statType .. '::>' .. (width * (i-1)) + 1 .. ']]', '[[Has ' .. statType .. '::<' .. width * i ..']]' }
        subQ.format = 'count'
        local resultI = mw.smw.subobject ( { 'Has sort order=' .. i, 'Has label=' .. (width * (i-1)) + 1 .. '-' .. width * i, 'Has count=' .. mw.smw.ask( subQ ) } )
        if resultI ~= true then resultFinal = false end
    end

    return resultFinal

end

return p