Module:Infobox television disambiguation check/sandbox
This is the module sandbox page for Module:Infobox television disambiguation check (diff). See also the companion subpage for test cases (run). |
This Lua module is used on approximately 65,000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
This module depends on the following other modules: |
Module:Infobox television disambiguation check is used to validate the disambiguation of a page using {{Infobox television}}.
What it does[edit]
The module preforms two checks:
- It checks by a series of validations if one of the accepted WP:NCTV disambiguation styles appears in the parenthesis. If it is incorrect, it places the page in Category:Television articles with incorrect naming style. Validations currently supported:
- Validates the format used is one of the accepted values.
- Validates the country adjective used is correct.
- Validates the year is using 4 digits.
- Validates that the style is ordered as <year> <country adjective> <format>.
- It checks if a page is using "(film series)", "(franchise)", "(radio)", "(season #)", "(series #)" or "(TV programming block)" as disambiguation, but uses {{Infobox television}} instead of {{Infobox media franchise}}, {{Infobox radio show}}, {{Infobox television season}} or {{Infobox programming block}}}. If so, it places the page in Category:Television articles using incorrect infobox.
Usage[edit]
Parameter list[edit]
The following parameter can be used as a positional parameter.
Parameter | Explanation | Status |
---|---|---|
1
|
The page's title. | required |
See also[edit]
Tracking categories[edit]
-- This module requires the use of the following modules.
local getArgs = require('Module:Arguments').getArgs
local validateDisambiguation = require('Module:Television infoboxes disambiguation check/sandbox')
local p = {}
local validDisambiguationTypeList = {
"TV series",
"TV programme",
"TV program",
"TV film",
"film",
"miniseries",
"serial",
"game show",
"talk show",
"web series"
}
local validDisambiguationPatternList = {
validateDisambiguation.DisambiguationPattern{pattern = "^(%d+) (%D+)", type = 1}, --"VALIDATION_TYPE_YEAR_COUNTRY"
validateDisambiguation.DisambiguationPattern{pattern = "^%d+$", type = 2}, --"VALIDATION_TYPE_YEAR"
validateDisambiguation.DisambiguationPattern{pattern = "^%D+$", type = 3} --"VALIDATION_TYPE_COUNTRY"
}
local exceptionList = {
"The (206)",
"Bigg Boss (Hindi TV series)",
"Cinderella (Apakah Cinta Hanyalah Mimpi?)",
"Deal or No Deal Malaysia (English-language game show)",
"Deal or No Deal Malaysia (Mandarin-language game show)",
"How to Live with Your Parents (For the Rest of Your Life)",
"I (Almost) Got Away With It",
"Monty Python: Almost the Truth (Lawyers Cut)",
"Randall and Hopkirk (Deceased)",
"Who the (Bleep)...",
"Who the (Bleep) Did I Marry?",
}
local otherInfoboxList = {
["franchise"] = "[[Category:Television articles using incorrect infobox|FRANCHISE]]",
["radio"] = "[[Category:Television articles using incorrect infobox|R]]",
["season"] = "[[Category:Television articles using incorrect infobox|S]]",
["series %d*"] = "[[Category:Television articles using incorrect infobox|S]]",
["TV programming block"] = "[[Category:Television articles using incorrect infobox|P]]",
["film series"] = "[[Category:Television articles using incorrect infobox|FILM]]"
}
-- Empty for now.
local invalidTitleStyleList = {}
local function _main(args)
local title = args[1]
return validateDisambiguation.main(title, "infobox television", validDisambiguationTypeList, validDisambiguationPatternList, exceptionList, otherInfoboxList, invalidTitleStyleList)
end
function p.main(frame)
local args = getArgs(frame)
local category, debugString = _main(args)
return category
end
local function removeFromArray(t, delete)
local j = 1
local n = #t
for i = 1, n do
if (t[i] ~= delete) then
-- Move i's kept value to j's position, if it's not already there.
if (i ~= j) then
t[j] = t[i]
t[i] = nil
end
j = j + 1 -- Increment position of where we'll place the next kept value.
else
t[i] = nil
end
end
return t
end
function p.getDisambiguationTypeList()
return removeFromArray(validDisambiguationTypeList, "TV series")
end
function p.test(frame)
local args = getArgs(frame)
local category, debugString = _main(args)
return debugString
end
return p