Module:New pages: Difference between revisions

From Eli's Software Encyclopedia
Created page with "local p = {} function p.main() local data = mw.ext.externalData.getWebData { url = 'https://elisoftware.org/w/api.php?action=query&format=json&list=random&formatversion=2&rnnamespace=0', format = 'JSON', data = { json = '_json' } } or {} data = data.json return data end return p"
 
mNo edit summary
 
(15 intermediate revisions by the same user not shown)
Line 3: Line 3:
function p.main()
function p.main()
local data = mw.ext.externalData.getWebData {
local data = mw.smw.ask {
url = 'https://elisoftware.org/w/api.php?action=query&format=json&list=random&formatversion=2&rnnamespace=0',
'[[:+]][[Creation date::+]]',
format = 'JSON',
'mainlabel=-',
data = {
'?Creation date#-F[Y-m-d H:i:s]=timestamp',
json = '_json'
'?#-=title',
}
'?Page creator#-=user',
'sort=Creation date',
'order=desc',
'limit=20',
'@deferred'
} or {}
} or {}


    data = data.json
local rtitle, rdate, ruser, rrow
local html = mw.html.create()
local ul = html:tag('ul'):attr('id', 'new-pages')
for _, page in ipairs(data) do
rtitle = page.title
rdate = page.timestamp
ruser = page.user or 'User:Eli'
rname = ruser:match("([^:]+)$")


return data
rrow = string.format('%s - [[%s]] by [[%s|%s]]', rdate, rtitle, ruser, rname )
 
    ul:tag('li'):wikitext(rrow)
end
return html
end
end


return p
return p

Latest revision as of 11:57, December 10, 2025

Documentation for this module may be created at Module:New pages/doc

local p = {}

function p.main()
	
	local data = mw.smw.ask {
		'[[:+]][[Creation date::+]]',
		'mainlabel=-',
		'?Creation date#-F[Y-m-d H:i:s]=timestamp',
		'?#-=title',
		'?Page creator#-=user',
		'sort=Creation date',
		'order=desc',
		'limit=20',
		'@deferred'
	} or {}

	local rtitle, rdate, ruser, rrow
	
	local html = mw.html.create()
	local ul = html:tag('ul'):attr('id', 'new-pages')
	
	for _, page in ipairs(data) do
		
		rtitle = page.title
		rdate = page.timestamp
		ruser = page.user or 'User:Eli'
		rname = ruser:match("([^:]+)$")

		rrow = string.format('%s - [[%s]] by [[%s|%s]]', rdate, rtitle, ruser, rname )

	    ul:tag('li'):wikitext(rrow)
	end
	
	return html
	
end

return p