Module:Fiction redirect category handler/Franchise
Jump to navigation
Jump to search
File:Lua-Logo.svg | This module depends on the following other modules: |
Module:Fiction redirect category handler/Franchise is used handle the shared code used by franchise-specific module handlers, such as Module:Arrowverse redirect category handler.
Usage
<syntaxhighlight lang="lua"> local franchiseHandlerModule = require('Module:Fiction redirect category handler/Franchise') return franchiseHandlerModule.main(objectType, frame, args, franchiseName, tvSeriesNameList) </syntaxhighlight>
Script error: No such module "Navbox".
local p = {} --[[ Local function which adds the names relevant TV series to the args table. Franchise templates, such as the Arrowverse-specific one, have short parameters that editors can use instead of the full TV series name. This functions checks if the user-input parameters match the ones on the list, and if they do, adds them to the list. Franchise templates can also use a "franchise" default parameter so all members will automatically be tagged in the franchise category, as well as the specific TV series category. --]] local function getListOfSeriesTags(templateArgs, franchise, tvSeriesNameList, validArgs) local seriesArgs = {} for i, v in ipairs(tvSeriesNameList) do local tvSeries = tvSeriesNameList[i] -- Check if the user-input parameter matches one on the list; -- If it matches, add the series name to the list. if (templateArgs[tvSeries.argName]) then table.insert(seriesArgs, tvSeries.seriesName) table.insert(validArgs, tvSeries.argName) end end if (#seriesArgs > 0) then table.insert(seriesArgs, franchise) -- This parameter is used by the relevant "R to fictional x" templates -- to enable multi-series categories. seriesArgs["multi"] = "yes" templateArgs["multi_series_name_table"] = seriesArgs else templateArgs["series_name"] = franchise end return templateArgs, validArgs end --[[ Public function which handles the main operation. --]] function p.main(args, objectType, franchise, tvSeriesNameList) local validArgs = {"correct_disambiguation", "multi", "multi_series_name_table"} args, validArgs = getListOfSeriesTags(args, franchise, tvSeriesNameList, validArgs) -- Franchise articles, such as the Arrowverse and the Marvel Cinematic Universe, -- use the franchise name as disambiguation for articles, and not a TV series or film name. args["correct_disambiguation"] = franchise local fictionRedirectCategoryHandler = require('Module:Fiction redirect category handler') return fictionRedirectCategoryHandler["_" .. objectType](args, validArgs) end --[[ Public function which is used for the /testcases to verify correct series name output. --]] function p.testSeriesName(args, franchise, tvSeriesNameList) args = getListOfSeriesTags(args, franchise, tvSeriesNameList, {}) if (args.series_name) then return args.series_name else return args.multi_series_name_table[1] end end return p