From StrategyWiki, the video game walkthrough and strategy guide wiki
Jump to navigation Jump to search

Documentation for this module may be created at Module:WikiList/Documentation

local p = {}

function p._format( refList )
	local root = mw.html.create( "div" ):addClass("t_wikilist")
	root
		:tag("div"):addClass("t_wikilist_head")
			:wikitext("Independent wikis with more information:")
	list_div = root:tag( "div" ):addClass("t_wikilist_body")
	for _, wikiData in pairs(refList) do
		list_div:tag("span")
			:wikitext("[" .. wikiData.url .. " " .. wikiData.name .. " (" .. wikiData.lang .. ")]<br />")
	end
	
	return tostring(root)
end

function p.wikiList( frame )
	local type = frame:getParent().args[1]
	local target = frame:getParent().args[2] or mw.title.getCurrentTitle().text
	local data = mw.ext.externalData.getExternalData {
		url = 'https://gamewikis.github.io/WikiLookup/WikiLookup.json',
		data = "json=__json"
	}
	local refList = {}
	
	for _, wikiData in pairs(data["json"]) do
		mw.logObject(wikiData[type])
		if wikiData[type] ~= nil then
			for _, game in pairs(wikiData[type]) do
				if game == target then
					table.insert(refList, { name = wikiData["name"], lang = wikiData["lang"], url = wikiData["homepage"]})
				end
			end
		end
	end

	if next(refList) == nil then
		return ""
	else
		return p._format( refList )
	end
end

return p