<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://drl.droidbuilders.net/index.php?action=history&amp;feed=atom&amp;title=Module%3ACardGameCite</id>
	<title>Module:CardGameCite - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://drl.droidbuilders.net/index.php?action=history&amp;feed=atom&amp;title=Module%3ACardGameCite"/>
	<link rel="alternate" type="text/html" href="https://drl.droidbuilders.net/index.php?title=Module:CardGameCite&amp;action=history"/>
	<updated>2026-05-09T05:44:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.6</generator>
	<entry>
		<id>https://drl.droidbuilders.net/index.php?title=Module:CardGameCite&amp;diff=3962&amp;oldid=prev</id>
		<title>Drl-admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://drl.droidbuilders.net/index.php?title=Module:CardGameCite&amp;diff=3962&amp;oldid=prev"/>
		<updated>2018-08-12T16:26:33Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local datatable = mw.loadData(&amp;#039;Module:CardGameCite/data&amp;#039;)&lt;br /&gt;
local currentTitle = mw.title.getCurrentTitle()&lt;br /&gt;
&lt;br /&gt;
local function makeCategoryLink(cat)&lt;br /&gt;
    -- &amp;quot;Category&amp;quot; is split out here so that the module isn&amp;#039;t put into the&lt;br /&gt;
    -- category &amp;quot;%s&amp;quot; when the page is saved.&lt;br /&gt;
    return string.format(&amp;#039;[[%s:%s]]&amp;#039;, &amp;#039;Category&amp;#039;, cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeWikitextError(template, msg)&lt;br /&gt;
    local ret = string.format(&lt;br /&gt;
        &amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;[[Template:%s]] error: %s.&amp;lt;/strong&amp;gt;&amp;#039;,&lt;br /&gt;
        template, msg&lt;br /&gt;
    )&lt;br /&gt;
    if currentTitle.namespace == 0 then&lt;br /&gt;
        ret = ret .. makeCategoryLink(&amp;#039;Pages with template parameter errors&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args, warnings, template)&lt;br /&gt;
    --[[&lt;br /&gt;
    Args:&lt;br /&gt;
    set: name of set article&lt;br /&gt;
    text: display text for set article link&lt;br /&gt;
    link: text to link card name to (possibly nil)&lt;br /&gt;
    cardname: name of card (possibly nil)&lt;br /&gt;
    nourl: boolean indicating external/internal link (true for internal)&lt;br /&gt;
    scenario (SWGTCG only): scenario name&lt;br /&gt;
&lt;br /&gt;
    Warnings: table, possibly empty, of messages regarding deprecated&lt;br /&gt;
        parameters&lt;br /&gt;
&lt;br /&gt;
    Template: name of the template, for looking up the data on it&lt;br /&gt;
    ]]&lt;br /&gt;
    local data = datatable[template]&lt;br /&gt;
    local ret = {string.format(&amp;#039;%s&amp;amp;nbsp;&amp;#039;, data.image)}&lt;br /&gt;
    -- Access to a local is faster than indexing a table each time&lt;br /&gt;
    local title, noSet = data.title, data.noSet&lt;br /&gt;
    if title then&lt;br /&gt;
        ret[#ret + 1] = title&lt;br /&gt;
        if not noSet then&lt;br /&gt;
            ret[#ret + 1] = &amp;#039; &amp;amp;ndash; &amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    if not noSet then&lt;br /&gt;
        local set, text = args.set, args.text&lt;br /&gt;
        args.set, args.text = nil, nil&lt;br /&gt;
        if set == text then&lt;br /&gt;
            ret[#ret + 1] = string.format(&amp;quot;&amp;#039;&amp;#039;[[%s]]&amp;#039;&amp;#039;&amp;quot;, set)&lt;br /&gt;
        else&lt;br /&gt;
            ret[#ret + 1] = string.format(&amp;quot;&amp;#039;&amp;#039;[[%s|%s]]&amp;#039;&amp;#039;&amp;quot;, set, text)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    local link, cardname = args.link, args.cardname&lt;br /&gt;
    args.link, args.cardname = nil, nil&lt;br /&gt;
    if link or cardname then&lt;br /&gt;
        if link and not cardname then&lt;br /&gt;
            return makeWikitextError(&lt;br /&gt;
                template, &amp;#039;&amp;quot;link&amp;quot; cannot be used without &amp;quot;cardname&amp;quot;&amp;#039;&lt;br /&gt;
            )&lt;br /&gt;
        end&lt;br /&gt;
        local fmt = &amp;#039; &amp;lt;small class=&amp;quot;plainlinks&amp;quot;&amp;gt;(Card: %s)&amp;lt;/small&amp;gt;&amp;#039;&lt;br /&gt;
        if not link then&lt;br /&gt;
            ret[#ret + 1] = fmt:format(cardname)&lt;br /&gt;
        else&lt;br /&gt;
            local cardlink&lt;br /&gt;
            if args.nourl then&lt;br /&gt;
                if link == cardname then&lt;br /&gt;
                    cardlink = string.format(&amp;#039;[[%s]]&amp;#039;, cardname)&lt;br /&gt;
                else&lt;br /&gt;
                    cardlink = string.format(&amp;#039;[[%s|%s]]&amp;#039;, link, cardname)&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                cardlink = string.format(&lt;br /&gt;
                    &amp;#039;[%s%s %s]&amp;#039;, data.urlprefix, link, cardname&lt;br /&gt;
                )&lt;br /&gt;
            end&lt;br /&gt;
            ret[#ret + 1] = fmt:format(cardlink)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    args.nourl = nil&lt;br /&gt;
    local scenarioFormat, scenarioName = data.scenario, args.scenario&lt;br /&gt;
    if scenarioFormat and scenarioName then&lt;br /&gt;
        args.scenario = nil&lt;br /&gt;
        ret[#ret + 1] = scenarioFormat:format(scenarioName)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- At this point, the args table should be empty. Calling next() on it&lt;br /&gt;
    -- will return nil if it is indeed empty, or a string key if it is not.&lt;br /&gt;
    local key = next(args)&lt;br /&gt;
    if key then&lt;br /&gt;
        warnings[#warnings + 1] = makeCategoryLink(&lt;br /&gt;
            &amp;#039;Templates with unrecognized parameters&amp;#039;&lt;br /&gt;
        )&lt;br /&gt;
        ret[#ret + 1] = string.format(&lt;br /&gt;
            &amp;#039; &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Warning: Call to Template:%s&amp;#039; ..&lt;br /&gt;
            &amp;#039; contains unrecognized parameter &amp;quot;%s&amp;quot;&amp;lt;/span&amp;gt;&amp;#039;, template, key&lt;br /&gt;
        )&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return table.concat(ret) .. table.concat(warnings)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Trim whitespace from template arguments and store them&lt;br /&gt;
local function processArgs(frame, ...)&lt;br /&gt;
    local args, warnings = {}, {}&lt;br /&gt;
    local funcs = {...}&lt;br /&gt;
    for k, v in pairs(frame:getParent().args) do&lt;br /&gt;
        v = v:match(&amp;#039;^%s*(.-)%s*$&amp;#039;) -- trim whitespace&lt;br /&gt;
        if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            args[k] = v&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    args.nourl = yesno(args.nourl)&lt;br /&gt;
    for _, func in ipairs(funcs) do&lt;br /&gt;
        func(args, warnings)&lt;br /&gt;
    end&lt;br /&gt;
    return args, warnings&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- &lt;br /&gt;
local function archiveWizards(args, warnings)&lt;br /&gt;
    if not args.nourl and args.link and args.link:match(&amp;#039;wizards.com&amp;#039;) then&lt;br /&gt;
        args.link = &amp;#039;http://web.archive.org/web/&amp;#039; .. args.link&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Checks for the set parameter in the template parameters,&lt;br /&gt;
-- and also add warnings for the use of unnamed parameter 1&lt;br /&gt;
-- or the lack of a set parameter when it&amp;#039;s required.&lt;br /&gt;
local function processSet(args, warnings)&lt;br /&gt;
    if not args.set then&lt;br /&gt;
        if args[1] then&lt;br /&gt;
            args.set = args[1]&lt;br /&gt;
            args[1] = nil&lt;br /&gt;
            warnings[#warnings + 1] = makeCategoryLink(&lt;br /&gt;
                &amp;#039;Pages using deprecated unnamed parameter 1 for card game set&amp;#039;&lt;br /&gt;
            )&lt;br /&gt;
        else&lt;br /&gt;
            error(&amp;#039;the &amp;quot;set&amp;quot; parameter is required&amp;#039;, 0)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- If the text parameter is not present, retrieves the text that will&lt;br /&gt;
-- be used for the set after some trimming.&lt;br /&gt;
local function generateTextFromSet(args, warnings)&lt;br /&gt;
    if not args.text then&lt;br /&gt;
        local stop = args.set:find(&amp;#039;%s*%(&amp;#039;)&lt;br /&gt;
        if stop then&lt;br /&gt;
            args.text = args.set:sub(1, stop - 1)&lt;br /&gt;
        else&lt;br /&gt;
            args.text = args.set&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Checks for the text parameter in the template parameters&lt;br /&gt;
-- and also add warnings for the use of unnamed parameter 2&lt;br /&gt;
-- or the lack of a text parameter when it&amp;#039;s required.&lt;br /&gt;
local function processText(args, warnings)&lt;br /&gt;
    if not args.text then&lt;br /&gt;
        if args[2] then&lt;br /&gt;
            args.text = args[2]&lt;br /&gt;
            args[2] = nil&lt;br /&gt;
            warnings[#warnings + 1] = makeCategoryLink(&lt;br /&gt;
                &amp;#039;Pages using deprecated unnamed parameter 2 for card game set&amp;#039;&lt;br /&gt;
            )&lt;br /&gt;
        else&lt;br /&gt;
            generateTextFromSet(args, warnings)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Trim the set text for the FFG Card Game Core Set.&lt;br /&gt;
local function processTextFFGTCG(args, warnings)&lt;br /&gt;
    generateTextFromSet(args)&lt;br /&gt;
    if args.text == &amp;#039;Star Wars: The Card Game Core Set&amp;#039; then&lt;br /&gt;
        args.text = &amp;#039;Core Set&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Checks for the cardname parameter in the template parameters&lt;br /&gt;
-- and also add warnings for the use of unnamed parameter 2&lt;br /&gt;
-- or the lack of a text parameter when it&amp;#039;s required.&lt;br /&gt;
local function processCardname(args, warnings)&lt;br /&gt;
    if not args.cardname then&lt;br /&gt;
        if args[2] then&lt;br /&gt;
            args.cardname = args[2]&lt;br /&gt;
            args[2] = nil&lt;br /&gt;
            warnings[#warnings + 1] = makeCategoryLink(&lt;br /&gt;
                &amp;#039;Pages using deprecated parameter 2 for card game card name&amp;#039;&lt;br /&gt;
            )&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Checks for and stores the url parameter in the template parameters&lt;br /&gt;
-- and also add a warning for the use of the deprecated url parameter.&lt;br /&gt;
local function urlToLink(args, warnings)&lt;br /&gt;
    if not args.link then&lt;br /&gt;
        if args.url then&lt;br /&gt;
            args.link = args.url&lt;br /&gt;
            args.url = nil&lt;br /&gt;
            warnings[#warnings + 1] = makeCategoryLink(&lt;br /&gt;
                &amp;#039;Pages using deprecated url parameter to Template:SWGTCG&amp;#039;&lt;br /&gt;
            )&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function processSetTextSWPM(args, warnings)&lt;br /&gt;
    processSet(args, warnings)&lt;br /&gt;
    if not args.text then&lt;br /&gt;
        if args[2] then&lt;br /&gt;
            args.text = args[2]&lt;br /&gt;
            args[2] = nil&lt;br /&gt;
            warnings[#warnings + 1] = makeCategoryLink(&lt;br /&gt;
                &amp;#039;Pages using deprecated unnamed parameter 2 for card game set&amp;#039;&lt;br /&gt;
            )&lt;br /&gt;
        elseif args.set == &amp;#039;Base Set&amp;#039; then&lt;br /&gt;
            args.text = args.set&lt;br /&gt;
            args.set = &amp;#039;Star Wars PocketModel TCG: Base Set&amp;#039;&lt;br /&gt;
        elseif args.set == &amp;#039;Clone Wars&amp;#039;&lt;br /&gt;
            or args.set == &amp;#039;Ground Assault&amp;#039;&lt;br /&gt;
            or args.set == &amp;#039;Order 66&amp;#039;&lt;br /&gt;
        then&lt;br /&gt;
            args.text = args.set&lt;br /&gt;
            args.set = args.set .. &amp;#039; (PocketModels)&amp;#039;&lt;br /&gt;
        else&lt;br /&gt;
            generateTextFromSet(args, warnings)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function main(frame, template, ...)&lt;br /&gt;
    local success, args, warnings = pcall(processArgs, frame, ...)&lt;br /&gt;
    if not success then&lt;br /&gt;
        return makeWikitextError(template, args)&lt;br /&gt;
    end&lt;br /&gt;
    return p._main(args, warnings, template)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- The following are specific function calls for each template that &lt;br /&gt;
-- uses this Module framework for its template. To add a new template,&lt;br /&gt;
-- simply copy the last entry and change the template name. &lt;br /&gt;
function p.TCG(frame)&lt;br /&gt;
    return main(frame, &amp;#039;TCG&amp;#039;, processSet, processText, archiveWizards)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.CCG(frame)&lt;br /&gt;
    return main(frame, &amp;#039;CCG&amp;#039;, processSet, generateTextFromSet)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.FFGTCG(frame)&lt;br /&gt;
    return main(frame, &amp;#039;FFGTCG&amp;#039;, processSet,&lt;br /&gt;
                processTextFFGTCG, processCardname)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.JKTCG(frame)&lt;br /&gt;
    return main(frame, &amp;#039;JKTCG&amp;#039;, processSet, processText)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.SOTE(frame)&lt;br /&gt;
    return main(frame, &amp;#039;SOTE&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.SOTEEMCC(frame)&lt;br /&gt;
    return main(frame, &amp;#039;SOTEEMCC&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.SWGTCG(frame)&lt;br /&gt;
    return main(frame, &amp;#039;SWGTCG&amp;#039;, processSet, processText, urlToLink)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.SWPM(frame)&lt;br /&gt;
    return main(frame, &amp;#039;SWPM&amp;#039;, processSetTextSWPM)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.Topps(frame)&lt;br /&gt;
    return main(frame, &amp;#039;Topps&amp;#039;, processSet, generateTextFromSet,&lt;br /&gt;
                processCardname)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.YJCCG(frame)&lt;br /&gt;
    return main(frame, &amp;#039;YJCCG&amp;#039;, processSet, generateTextFromSet)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.SWIA(frame)&lt;br /&gt;
    return main(frame, &amp;#039;SWIA&amp;#039;, processSet, processText)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Drl-admin</name></author>
	</entry>
</feed>