Advertisement:
Module:Infobox film/track
Jump to navigation
Jump to search
This module checks arguments passed to {{Infobox film}} and adds Category:Pages using infobox film with incorrectly placed links if a person linked in |producer(s)=
is also listed in |writer=
etc., or a person linked in |music=
is also listed in |cinematography=
or |editing=
(in the main and draft namespaces only).Pagesz
It also adds suggestions like The link "[[Samuel G. Engel]]" in |producer= should be moved to |screenplay=
in Lua logs (available under "Parser profiling data" in preview). This is done in all namespaces.
local p = {} local function check(args, sources, targets) local source for _, param in ipairs(sources) do if args[param] and args[param] ~= '' then source = param break end end if not source then return false end local hasError = false for link in mw.ustring.gmatch(args[source], '%[%[[^%[%]]+%]%]') do local name = mw.ustring.match(link, '([^%|]+)%]%]$', 3) for _, param in ipairs(targets) do if args[param] and args[param] ~= '' then local match = mw.ustring.match(args[param], '.?.?%f[%w]' .. name .. '%f[%W]') -- Eliminate duplicate links if match and not mw.ustring.find(match, '^%[[%[:]') then mw.log('The link "' .. link .. '" in |' .. source .. '= should be moved to |' .. param .. '=.') hasError = true break end end end end return hasError end function p.main(frame) local args = frame:getParent().args local hasError1 = check(args, {'producer', 'producers'}, {'writer', 'writers', 'screenplay', 'story', 'based_on'}) local hasError2 = check(args, {'music'}, {'cinematography', 'editing'}) if hasError1 or hasError2 then local namespace = mw.title.getCurrentTitle().namespace if namespace == 0 or namespace == 118 then return '[[Category:Pages using infobox film with incorrectly placed links]]' end end end return p