Module:IPAddress and Module:IPAddress/sandbox: Difference between pages

(Difference between pages)
Jump to navigation Jump to search
Page 1
Page 2
imported>Trialpears
Add isIpV4Range and isIpV6Range
 
imported>Awesome Aasim
No edit summary
 
Line 50: Line 50:
end
end
return ''
return ''
end
function p._isUser(s)
if p._isIpOrRange(s) ~= '' then return '' end
local isTempUser = p._isTempUser(s)
if isTempUser then return 'temp'
else return 'perm' end
end
function p._isTempUser(s)
if p._isIpOrRange(s) ~= '' then return false end
return s:match('^~%d+%-%d+%-%d+$')
end
function p._isPermUser(s)
if p._isIpOrRange(s) ~= '' then return false end
return not p._isTempUser(s)
end
function p._main(s)
local isIpOrRange = p._isIpOrRange(s)
local isUser = p._isUser(s)
return isIpOrRange ~= '' and isIpOrRange or isUser
end
end


Line 70: Line 93:
-- {{#invoke:IPAddress|isIpOrRange|x}} → 'ip' (IPv4/IPv6) or 'range' (CIDR IPv4/IPv6) or '' (invalid)
-- {{#invoke:IPAddress|isIpOrRange|x}} → 'ip' (IPv4/IPv6) or 'range' (CIDR IPv4/IPv6) or '' (invalid)
return p._isIpOrRange(input(frame))
return p._isIpOrRange(input(frame))
end
function p.isTempUser(frame) return p._isTempUser(input(frame)) and "1" or "0" end
function p.isPermUser(frame) return p._isPermUser(input(frame)) and "1" or "0" end
function p.isUser(frame) return p._isUser(input(frame)) or "" end
function p.main(frame)
local args = require("Module:Arguments").getArgs(frame)
local sanitizeInput = input(frame)
local result = p._main(sanitizeInput)
if args[result] then
return args[result]
else
return result
end
end
end


return p
return p