<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://secrets.warcraftwatch.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AAPI_info%2Fgroup</id>
	<title>Module:API info/group - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://secrets.warcraftwatch.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AAPI_info%2Fgroup"/>
	<link rel="alternate" type="text/html" href="https://secrets.warcraftwatch.com/w/index.php?title=Module:API_info/group&amp;action=history"/>
	<updated>2026-05-06T21:44:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://secrets.warcraftwatch.com/w/index.php?title=Module:API_info/group&amp;diff=7126&amp;oldid=prev</id>
		<title>imported&gt;Ketho at 17:42, 20 November 2024</title>
		<link rel="alternate" type="text/html" href="https://secrets.warcraftwatch.com/w/index.php?title=Module:API_info/group&amp;diff=7126&amp;oldid=prev"/>
		<updated>2024-11-20T17:42:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local flavor_module = require(&amp;quot;Module:API_info/flavor&amp;quot;)&lt;br /&gt;
local elink_module = require(&amp;quot;Module:API_info/elink&amp;quot;)&lt;br /&gt;
local patch_module = require(&amp;quot;Module:API_info/patch&amp;quot;)&lt;br /&gt;
local group_data_module = require(&amp;quot;Module:API_info/util/group_data&amp;quot;)&lt;br /&gt;
local m = {}&lt;br /&gt;
&lt;br /&gt;
local INFOBOX_STYLE = &amp;#039;&amp;lt;div class=&amp;quot;nomobile&amp;gt;\n%s\n&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cannot use # operator on mw.loadData tables&lt;br /&gt;
local function GetTableSize(tbl)&lt;br /&gt;
	local size = 0&lt;br /&gt;
	for _ in pairs(tbl) do&lt;br /&gt;
		size = size + 1&lt;br /&gt;
	end&lt;br /&gt;
	return size&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function FormatCodeOrLink(name, apiName)&lt;br /&gt;
	local firstChar = name:sub(1, 1)&lt;br /&gt;
	local text&lt;br /&gt;
	local up = string.upper(name)&lt;br /&gt;
	if firstChar == &amp;quot;#&amp;quot; then&lt;br /&gt;
		name = name:sub(2)&lt;br /&gt;
		text = name&lt;br /&gt;
	-- bit ugly to implement @ prefix&lt;br /&gt;
	elseif firstChar == &amp;quot;@&amp;quot; then&lt;br /&gt;
		name = name:sub(2)&lt;br /&gt;
		local fs = name ~= apiName and &amp;quot;[https://warcraft.wiki.gg/wiki/API_%s?redirect=no %s]&amp;quot; or &amp;quot;[[API %s|%s]]&amp;quot;&lt;br /&gt;
		text = fs:format(name, name)&lt;br /&gt;
	elseif name == up then -- assume its an event&lt;br /&gt;
		text = string.format(&amp;quot;[[%s]]&amp;quot;, name)&lt;br /&gt;
	else&lt;br /&gt;
		text = string.format(&amp;quot;[[API %s|%s]]&amp;quot;, name, name)&lt;br /&gt;
	end&lt;br /&gt;
	-- cant color code tags from the outside&lt;br /&gt;
	-- return string.format(&amp;quot;&amp;lt;code&amp;gt;%s&amp;lt;/code&amp;gt;&amp;quot;, text)&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function FormatIcon(item)&lt;br /&gt;
	item.iconsize = item.iconsize or 16&lt;br /&gt;
	local fs = &amp;quot;[[File:%s|%dpx|link=%s|%s]]&amp;quot;&lt;br /&gt;
	return fs:format(item.icon, item.iconsize, item.url, item.tooltip or &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m:GetFlavorIcons(args, name)&lt;br /&gt;
	local data = flavor_module:GetFlavors(args.t, name)&lt;br /&gt;
	if data then&lt;br /&gt;
		local t = {}&lt;br /&gt;
		for _, item in pairs(data) do&lt;br /&gt;
			table.insert(t, FormatIcon(item))&lt;br /&gt;
		end&lt;br /&gt;
		return table.concat(t)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m:GetElinkIcons(args, name)&lt;br /&gt;
	local data = elink_module:GetElinks(args.t, name)&lt;br /&gt;
	if data then&lt;br /&gt;
		local t = {}&lt;br /&gt;
		for _, item in pairs(data) do&lt;br /&gt;
			table.insert(t, FormatIcon(item))&lt;br /&gt;
		end&lt;br /&gt;
		return table.concat(t, &amp;quot; &amp;amp;nbsp;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m:CreateInfobox(args, apiName)&lt;br /&gt;
	local group = group_data_module.data[apiName]&lt;br /&gt;
	local t = {}&lt;br /&gt;
	table.insert(t, &amp;#039;{| class=&amp;quot;darktable&amp;quot; cellpadding=4&amp;#039;)&lt;br /&gt;
	for _, name in pairs(group) do&lt;br /&gt;
		local prefixName = name&lt;br /&gt;
		name = group_data_module:GetNonPrefixName(name)&lt;br /&gt;
		table.insert(t, &amp;quot;\n|-\n| &amp;quot;)&lt;br /&gt;
		table.insert(t, string.format(&amp;quot;%s || &amp;quot;, self:GetElinkIcons(args, name) or &amp;quot;&amp;quot;))&lt;br /&gt;
		local api_text = FormatCodeOrLink(prefixName, apiName)&lt;br /&gt;
		local t_size = GetTableSize(group)&lt;br /&gt;
		if t_size &amp;gt; 2 and name == apiName then&lt;br /&gt;
			api_text = string.format(&amp;#039;&amp;lt;font color=&amp;quot;#dda0dd&amp;quot;&amp;gt;%s&amp;lt;/font&amp;gt;&amp;#039;, api_text)&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(t, string.format(&amp;quot;&amp;lt;code&amp;gt;%s&amp;lt;/code&amp;gt; || &amp;quot;, api_text))&lt;br /&gt;
		table.insert(t, string.format(&amp;quot;%s || &amp;quot;, self:GetFlavorIcons(args, name) or &amp;quot;&amp;quot;))&lt;br /&gt;
		local added, removed = patch_module:GetPatches(args.t, name)&lt;br /&gt;
		if #added &amp;gt; 0 then&lt;br /&gt;
			table.insert(t, &amp;quot;&amp;lt;font color=#00b400&amp;gt;+&amp;lt;/font&amp;gt; &amp;quot;..added)&lt;br /&gt;
		end&lt;br /&gt;
		-- if #removed &amp;gt; 0 then&lt;br /&gt;
		-- 	table.insert(t, &amp;quot;, &amp;lt;font color=#ff6767&amp;gt;-&amp;lt;/font&amp;gt; &amp;quot;..removed)&lt;br /&gt;
		-- end&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(t, &amp;quot;\n|}&amp;quot;)&lt;br /&gt;
	return table.concat(t)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m:GetData(name)&lt;br /&gt;
	return group_data_module.data[name]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m:main(args, name)&lt;br /&gt;
	local infobox = self:CreateInfobox(args, name)&lt;br /&gt;
	return INFOBOX_STYLE:format(infobox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return m&lt;/div&gt;</summary>
		<author><name>imported&gt;Ketho</name></author>
	</entry>
</feed>