Module:Database reports and Module:Database reports/sandbox: Difference between pages

(Difference between pages)
Jump to navigation Jump to search
Page 1
Page 2
imported>SD0001
Created page with '-- The subpages of this module are used for storing Lua database report configurations'
 
imported>SD0001
No edit summary
 
Line 1: Line 1:
-- The subpages of this module are used for storing Lua database report configurations
local Report = require('Module:Database report')
local Arguments = require('Module:Arguments')
 
local p = {}
 
p.main = function(frame)
local args = Arguments.getArgs(frame)
local report = Report:new()
report:setSQL([[
SELECT page_namespace, page_title FROM page LIMIT 10
]])
report:useWikilinks(2, args.ns_number)
report:setHeadContent('This is the head content')
report:setSilent(args.silent ~= nil)
 
return report:generate()
end
 
p.withJs = function()
local report = Report:new()
report:setSQL([[
SELECT page_namespace, page_title from page WHERE page_random > 0.65 limit 50
]])
report:setPostprocessJS([[
async function postprocess(rows) {
const result = await bot.api({
"format": "json",
"prop": "revisions",
"titles": "Main Page",
"formatversion": "2"
});
const user = result.query.pages[0].revisions[0].user;
const restData = await bot.request('https://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/en.wikipedia.org/all-access/all-agents/Main%20Page/daily/20240531/20240531');
log(restData);
rows.forEach(row => {
row.title = row.page_title.replace(/_/g, ' ');
row.user = user;
row.random = Math.random();
row.views = restData.items[0].views;
delete row.page_namespace;
delete row.page_title;
});
return rows;
}
]])
 
return report:generate()
end
 
return p