<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki42.maceys.net/index.php?action=history&amp;feed=atom&amp;title=Module%3AUses_TNT</id>
	<title>Module:Uses TNT - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki42.maceys.net/index.php?action=history&amp;feed=atom&amp;title=Module%3AUses_TNT"/>
	<link rel="alternate" type="text/html" href="https://wiki42.maceys.net/index.php?title=Module:Uses_TNT&amp;action=history"/>
	<updated>2026-04-14T11:26:23Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki42.maceys.net/index.php?title=Module:Uses_TNT&amp;diff=392&amp;oldid=prev</id>
		<title>Lynn: Created page with &quot;-------------------------------------------------------------------------------- -- This module implements the {{Uses TNT}} template. -- -- @module usesTNT -- @alias  p -- @author User:ExE Boss -- @require Module:Uses TNT/config -- @require Module:Arguments -- @require Module:Func -- @require Module:List -- @require Module:Message box -- @require Module:TNT -- @require Module:TNTTools -- @require Module:TableTools -- @require [[Module:...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki42.maceys.net/index.php?title=Module:Uses_TNT&amp;diff=392&amp;oldid=prev"/>
		<updated>2026-01-25T02:05:26Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-------------------------------------------------------------------------------- -- This module implements the {{Uses TNT}} template. -- -- @module usesTNT -- @alias  p -- @author &lt;a href=&quot;/index.php?title=User:ExE_Boss&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:ExE Boss (page does not exist)&quot;&gt;User:ExE Boss&lt;/a&gt; -- @require &lt;a href=&quot;/index.php?title=Module:Uses_TNT/config&quot; title=&quot;Module:Uses TNT/config&quot;&gt;Module:Uses TNT/config&lt;/a&gt; -- @require &lt;a href=&quot;/index.php?title=Module:Arguments&quot; title=&quot;Module:Arguments&quot;&gt;Module:Arguments&lt;/a&gt; -- @require &lt;a href=&quot;/index.php?title=Module:Func&quot; title=&quot;Module:Func&quot;&gt;Module:Func&lt;/a&gt; -- @require &lt;a href=&quot;/index.php?title=Module:List&quot; title=&quot;Module:List&quot;&gt;Module:List&lt;/a&gt; -- @require &lt;a href=&quot;/index.php?title=Module:Message_box&quot; title=&quot;Module:Message box&quot;&gt;Module:Message box&lt;/a&gt; -- @require &lt;a href=&quot;/index.php?title=Module:TNT&quot; title=&quot;Module:TNT&quot;&gt;Module:TNT&lt;/a&gt; -- @require &lt;a href=&quot;/index.php?title=Module:TNTTools&quot; title=&quot;Module:TNTTools&quot;&gt;Module:TNTTools&lt;/a&gt; -- @require &lt;a href=&quot;/index.php?title=Module:TableTools&quot; title=&quot;Module:TableTools&quot;&gt;Module:TableTools&lt;/a&gt; -- @require [[Module:...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--------------------------------------------------------------------------------&lt;br /&gt;
-- This module implements the {{Uses TNT}} template.&lt;br /&gt;
--&lt;br /&gt;
-- @module usesTNT&lt;br /&gt;
-- @alias  p&lt;br /&gt;
-- @author [[User:ExE Boss]]&lt;br /&gt;
-- @require [[Module:Uses TNT/config]]&lt;br /&gt;
-- @require [[Module:Arguments]]&lt;br /&gt;
-- @require [[Module:Func]]&lt;br /&gt;
-- @require [[Module:List]]&lt;br /&gt;
-- @require [[Module:Message box]]&lt;br /&gt;
-- @require [[Module:TNT]]&lt;br /&gt;
-- @require [[Module:TNTTools]]&lt;br /&gt;
-- @require [[Module:TableTools]]&lt;br /&gt;
-- @require [[Module:Yesno]]&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
require(&amp;quot;strict&amp;quot;);&lt;br /&gt;
local checkType = require(&amp;quot;libraryUtil&amp;quot;).checkType;&lt;br /&gt;
local getArgs = require(&amp;quot;Module:Arguments&amp;quot;).getArgs;&lt;br /&gt;
local yesno = require(&amp;quot;Module:Yesno&amp;quot;);&lt;br /&gt;
local lists = require(&amp;quot;Module:List&amp;quot;);&lt;br /&gt;
local tableTools = require(&amp;quot;Module:TableTools&amp;quot;);&lt;br /&gt;
local messageBox = require(&amp;quot;Module:Message box&amp;quot;);&lt;br /&gt;
local TNTTabFull = require(&amp;quot;Module:TNTTools&amp;quot;).TNTTabFull;&lt;br /&gt;
&lt;br /&gt;
local format = require(&amp;quot;Module:Func&amp;quot;)&lt;br /&gt;
	.bind(require(&amp;quot;Module:TNT&amp;quot;).format, &amp;quot;I18n/Uses TNT.tab&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
local p = {};&lt;br /&gt;
&lt;br /&gt;
local function getConfig()&lt;br /&gt;
	return mw.loadData(&amp;quot;Module:Uses TNT/config&amp;quot;);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame, {&lt;br /&gt;
		wrappers = {&lt;br /&gt;
			&amp;quot;Template:Uses TNT&amp;quot;,&lt;br /&gt;
		},&lt;br /&gt;
	});&lt;br /&gt;
	return p._main(args);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args, cfg)&lt;br /&gt;
	checkType(&amp;quot;_main&amp;quot;, 1, args, &amp;quot;table&amp;quot;);&lt;br /&gt;
	checkType(&amp;quot;_main&amp;quot;, 2, cfg, &amp;quot;table&amp;quot;, true);&lt;br /&gt;
	cfg = cfg or getConfig();&lt;br /&gt;
&lt;br /&gt;
	local tabFiles = tableTools.compressSparseArray(args);&lt;br /&gt;
	local box = p.renderBox(tabFiles, cfg, args);&lt;br /&gt;
	local trackingCategories = p.renderTrackingCategories(args, tabFiles, nil, cfg);&lt;br /&gt;
	return box .. trackingCategories;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderBox(tabFiles, cfg, args)&lt;br /&gt;
	checkType(&amp;quot;renderBox&amp;quot;, 1, tabFiles, &amp;quot;table&amp;quot;);&lt;br /&gt;
	checkType(&amp;quot;renderBox&amp;quot;, 2, cfg, &amp;quot;table&amp;quot;, true);&lt;br /&gt;
	checkType(&amp;quot;renderBox&amp;quot;, 3, args, &amp;quot;table&amp;quot;, true);&lt;br /&gt;
	cfg = cfg or getConfig();&lt;br /&gt;
&lt;br /&gt;
	local nsType = mw.title.getCurrentTitle():inNamespaces(828, 829) and &amp;#039;module&amp;#039; or &amp;#039;template&amp;#039;;&lt;br /&gt;
	local boxArgs = {};&lt;br /&gt;
&lt;br /&gt;
	if #tabFiles &amp;lt; 1 then&lt;br /&gt;
		if cfg[&amp;quot;allow_wishes&amp;quot;] or yesno(args and args.wish) then&lt;br /&gt;
			boxArgs.text = format(&amp;quot;wishtext-&amp;quot; .. nsType);&lt;br /&gt;
		else&lt;br /&gt;
			boxArgs.text = string.format(&amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;%s&amp;lt;/strong&amp;gt;&amp;#039;, format(&amp;quot;error-emptylist&amp;quot;));&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		local tabFileLinks = {};&lt;br /&gt;
		for i, tabFile in ipairs(tabFiles) do&lt;br /&gt;
			local tabFileFull = TNTTabFull(tabFile);&lt;br /&gt;
			tabFileLinks[i] = string.format(&amp;quot;[[:c:Data:%s|%s]]&amp;quot;, tabFileFull, tabFileFull);&lt;br /&gt;
		end&lt;br /&gt;
		local tabFilesList = lists.makeList(&amp;quot;bulleted&amp;quot;, tabFileLinks);&lt;br /&gt;
		boxArgs.text = format(&amp;quot;header-&amp;quot; .. nsType) .. &amp;quot;\n&amp;quot; .. tabFilesList;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	boxArgs.type = &amp;quot;notice&amp;quot;;&lt;br /&gt;
	boxArgs.small = true;&lt;br /&gt;
	boxArgs.image = cfg[&amp;quot;logo_link&amp;quot;]&lt;br /&gt;
		and string.format(&amp;quot;[[%s|%s]]&amp;quot;, cfg[&amp;quot;logo_link&amp;quot;], format(&amp;quot;logo-alt&amp;quot;))&lt;br /&gt;
		or format(&amp;quot;logo-alt&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	return messageBox.main(&amp;quot;mbox&amp;quot;, boxArgs);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderTrackingCategories(args, tabFiles, titleObj, cfg)&lt;br /&gt;
	checkType(&amp;quot;renderTrackingCategories&amp;quot;, 1, args, &amp;quot;table&amp;quot;);&lt;br /&gt;
	checkType(&amp;quot;renderTrackingCategories&amp;quot;, 2, tabFiles, &amp;quot;table&amp;quot;);&lt;br /&gt;
	checkType(&amp;quot;renderTrackingCategories&amp;quot;, 3, titleObj, &amp;quot;table&amp;quot;, true);&lt;br /&gt;
	checkType(&amp;quot;renderTrackingCategories&amp;quot;, 4, cfg, &amp;quot;table&amp;quot;, true);&lt;br /&gt;
&lt;br /&gt;
	if yesno(args.nocat) then&lt;br /&gt;
		return &amp;#039;&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	cfg = cfg or getConfig();&lt;br /&gt;
&lt;br /&gt;
	local cats = {};&lt;br /&gt;
&lt;br /&gt;
	-- Error category&lt;br /&gt;
	if #tabFiles &amp;lt; 1 and not (cfg[&amp;quot;allow_wishes&amp;quot;] or yesno(args.wish)) and cfg[&amp;quot;error_category&amp;quot;] then&lt;br /&gt;
		cats[#cats + 1] = cfg[&amp;quot;error_category&amp;quot;];&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- [[Module:TNT]] category&lt;br /&gt;
	titleObj = titleObj or mw.title.getCurrentTitle();&lt;br /&gt;
	if (&lt;br /&gt;
		(titleObj.namespace == 10 or titleObj.namespace == 828)&lt;br /&gt;
		and not cfg[&amp;quot;subpage_blacklist&amp;quot;][titleObj.subpageText]&lt;br /&gt;
	) then&lt;br /&gt;
		local category = args.category;&lt;br /&gt;
		if not category then&lt;br /&gt;
			if (cfg[&amp;quot;allow_wishes&amp;quot;] or yesno(args.wish)) and #tabFiles &amp;lt; 1 then&lt;br /&gt;
				category = cfg[&amp;quot;wish_category&amp;quot;];&lt;br /&gt;
			else&lt;br /&gt;
				category = cfg[&amp;quot;default_category&amp;quot;];&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if category then&lt;br /&gt;
			cats[#cats + 1] = category;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for i, cat in ipairs(cats) do&lt;br /&gt;
		cats[i] = string.format(&amp;quot;[[Category:%s]]&amp;quot;, cat);&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(cats);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>Lynn</name></author>
	</entry>
</feed>