Module:IPAddress and Module:IPAddress/sandbox: Difference between pages
(Difference between pages)
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 | ||