Difference between revisions of "Module:Check card number/sandbox"
Dinoguy1000 (talk | contribs) (both branches insert into targets, so it needs to be defined before the conditional) |
Dinoguy1000 (talk | contribs) (fair enough, that doesn't work) |
||
Line 8: | Line 8: | ||
local targets = {} | local targets = {} | ||
if isRedirect then | if isRedirect then | ||
− | + | table.insert( targets, page.redirectTarget ) | |
else | else | ||
local pageSrc = page:getContent() | local pageSrc = page:getContent() | ||
if pageSrc:find( 'disambig' ) then | if pageSrc:find( 'disambig' ) then | ||
for target in pageSrc:gsplit( '%[%[' ) do | for target in pageSrc:gsplit( '%[%[' ) do | ||
− | + | table.insert( targets, pageSrc:match( '([^%]|]-)%]%]' ) or pageSrc:match( '([^%]|]-)|[^%]]-%]%]' ) ) | |
end | end | ||
else | else |
Revision as of 16:41, 26 July 2023
This is the module sandbox page for Module:Check card number (diff). |
Rudimentary Card Number validity check for Template:R from card number.
-- super rudimentary check for potentially invalid card numbers
local p = {}
function p.check()
local page = mw.title.getCurrentTitle()
local isRedirect = page.isRedirect
local targets = {}
if isRedirect then
table.insert( targets, page.redirectTarget )
else
local pageSrc = page:getContent()
if pageSrc:find( 'disambig' ) then
for target in pageSrc:gsplit( '%[%[' ) do
table.insert( targets, pageSrc:match( '([^%]|]-)%]%]' ) or pageSrc:match( '([^%]|]-)|[^%]]-%]%]' ) )
end
else
-- some page that isn't a redirect or a dabpage, just return without doing anything
return
end
end
local searchStr = ( '%s%s;' ):format ('%s', page:gsub( '%-', '%%-' ) )
for target in targets do
local success, targetTitle = pcall( mw.title.new, target )
if not success or not targetTitle then
return
end
local targetSrc = targetTitle:getContent()
if not targetSrc:find( searchStr ) then
return isRedirect and '[[Category:Potentially invalid card number redirects]]' or '[[Category:Card number disambiguation pages to be checked]]'
end
end
return
end
return p