Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:Database reports/sandbox

From Wikipedia, the free encyclopedia
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