More languages
More actions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
-- Function to get the number of works | -- Table to store local cached results during this execution | ||
local cache = {} | |||
-- Function to get the number of works | |||
function p.getWorkCount(frame) | function p.getWorkCount(frame) | ||
local category = frame.args.category or '' | local category = frame.args.category or '' | ||
if category == '' then return "0 works" end | if category == '' then return "0 works" end | ||
-- | -- Check if we already have the result for this category in local cache | ||
if cache[category] then | |||
return cache[category] | |||
return | |||
end | end | ||
-- | -- Perform the expensive call to get the number of pages in the category | ||
local pages = mw.site.stats.pagesInCategory(category) | local pages = mw.site.stats.pagesInCategory(category) | ||
-- Format the result | -- Format the result | ||
local result = '' | local result = '' | ||
if tonumber(pages) == 1 then | if tonumber(pages) == 1 then | ||
Line 29: | Line 24: | ||
result = pages .. " works" | result = pages .. " works" | ||
end | end | ||
cache | -- Store the result in the local cache | ||
cache[category] = result | |||
return result | return result |
Revision as of 15:03, 14 September 2024
local p = {}
-- Table to store local cached results during this execution
local cache = {}
-- Function to get the number of works
function p.getWorkCount(frame)
local category = frame.args.category or ''
if category == '' then return "0 works" end
-- Check if we already have the result for this category in local cache
if cache[category] then
return cache[category]
end
-- Perform the expensive call to get the number of pages in the category
local pages = mw.site.stats.pagesInCategory(category)
-- Format the result
local result = ''
if tonumber(pages) == 1 then
result = "1 work"
else
result = pages .. " works"
end
-- Store the result in the local cache
cache[category] = result
return result
end
function p.main(frame)
return p.getWorkCount(frame)
end
return p