Difference between revisions of "Module:PastWikithons"
From BASAbaliWiki
Line 17: | Line 17: | ||
html = '' | html = '' | ||
-- https://github.com/SemanticMediaWiki/SemanticScribunto/blob/master/docs/README.md | -- https://github.com/SemanticMediaWiki/SemanticScribunto/blob/master/docs/README.md | ||
+ | -- build list of unique wikithons names | ||
local result = mw.smw.ask { | local result = mw.smw.ask { | ||
'[[Category:Article]]', | '[[Category:Article]]', | ||
Line 32: | Line 33: | ||
end | end | ||
end | end | ||
+ | -- fetch wikithons artiles per wikithon | ||
for k, v in pairs( competitions ) do | for k, v in pairs( competitions ) do | ||
− | html = html .. | + | local competition = k |
+ | local result = mw.smw.ask { | ||
+ | '[[Category:Article]]', | ||
+ | '[[Competition::' .. competition ..']]', | ||
+ | limit = 10, | ||
+ | mainlabel = 'origin' | ||
+ | } | ||
+ | if result and #result then | ||
+ | for num, entityData in pairs( result ) do | ||
+ | html = html .. ' ' .. entityData.origin | ||
+ | end | ||
+ | end | ||
end | end | ||
return html | return html |
Revision as of 13:48, 9 July 2024
Documentation for this module may be created at Module:PastWikithons/doc
local p = {} local competitions = {} function addToSet(set, key) set[key] = true end function removeFromSet(set, key) set[key] = nil end function setContains(set, key) return set[key] ~= nil end function p.display( frame ) html = '' -- https://github.com/SemanticMediaWiki/SemanticScribunto/blob/master/docs/README.md -- build list of unique wikithons names local result = mw.smw.ask { '[[Category:Article]]', '[[Competition::+]]', '?Competition', limit = 10, mainlabel = '-' } if result and #result then for num, entityData in pairs( result ) do local c = entityData['Competition'] if not setContains(competitions, c) then addToSet(competitions, c) end end end -- fetch wikithons artiles per wikithon for k, v in pairs( competitions ) do local competition = k local result = mw.smw.ask { '[[Category:Article]]', '[[Competition::' .. competition ..']]', limit = 10, mainlabel = 'origin' } if result and #result then for num, entityData in pairs( result ) do html = html .. ' ' .. entityData.origin end end end return html end return p