Module:Luxotool: Difference between revisions
Appearance
Content deleted Content added
Count Count (talk | contribs) stalk toy -> xwiki block log |
Count Count (talk | contribs) -xwiki-date +xwiki-blocks for accounts |
||
| Line 99: | Line 99: | ||
extlink( |
extlink( |
||
'https://allblocksever.toolforge.org/?target=' .. mw.uri.encode(username), |
'https://allblocksever.toolforge.org/?target=' .. mw.uri.encode(username), |
||
'xwiki |
'xwiki blocks', |
||
'xwiki |
'xwiki blocks' |
||
), |
), |
||
middot, |
middot, |
||
| Line 168: | Line 168: | ||
'xwiki-contribs', |
'xwiki-contribs', |
||
'GUC by wiki' |
'GUC by wiki' |
||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
mw.uri.fullUrl('toollabs:guc', {user = username, by = 'date', blocks = 'true'}), |
|||
| ⚫ | |||
'GUC by date' |
|||
), |
), |
||
' <sup>(', |
' <sup>(', |
||
| Line 184: | Line 178: | ||
'[[Special:GlobalContributions/' .. username .. '|mw]]', |
'[[Special:GlobalContributions/' .. username .. '|mw]]', |
||
')</sup>', |
')</sup>', |
||
| ⚫ | |||
| ⚫ | |||
'https://allblocksever.toolforge.org/?target=' .. mw.uri.encode(username), |
|||
| ⚫ | |||
'xwiki blocks' |
|||
| ⚫ | |||
middot, |
middot, |
||
link( |
link( |
||
Latest revision as of 08:05, 22 July 2026
Module documentation
local p = {}
local getArgs = require('Module:Arguments').getArgs
local isIpOrRange = require('Module:IPAddress').isIpOrRange
local middot = ' • '
local reason = 'per [[:m:Special:Redirect/page/' .. mw.title.getCurrentTitle().id .. '|request]]'
local extlink = function(url, text, title)
return '<span title="' .. title .. '">[' .. tostring(url) .. (text and ' ' .. text or '') .. ']</span>'
end
local link = function(page, param, text, title)
return extlink(mw.uri.fullUrl(page, param), text, title)
end
function p.main(frame)
local args = getArgs(frame, {
trim = true,
removeBlanks = true
})
return p._main(args)
end
function p._main(args)
local username = args[1] or error('You must specify a username or IP', 0)
local diff = args['diff']
-- Branch 1: SRGA subpage — simple GUC link
local srga = mw.title.getCurrentTitle():isSubpageOf(
mw.title.new('Steward requests/Global')
)
if srga then
return '<span class="plainlinks">' ..
extlink(
mw.uri.fullUrl('toollabs:guc', {user = username, by = 'date', blocks = 'true'}),
username,
'GUC'
) ..
'</span>'
end
local IpOrRange = isIpOrRange({args = {username}})
-- Branch 2: IP or range
if IpOrRange == 'ip' or IpOrRange == 'range' then
return p._ip_output(username, IpOrRange, diff)
end
-- Branch 3: User (default)
return p._user_output(username, diff)
end
function p._difflink(diff)
if diff then
return '<span style="background:lightgrey;"> [' .. diff .. ' difflink]</span>'
end
return ''
end
function p._lwcheckuser(username)
return extlink(
tostring(mw.uri.new('//login.wikimedia.org/w/index.php'):extend({
title = 'Special:CheckUser',
user = username,
uselang = 'en',
reason = reason,
})),
'<b>lwcheckuser</b>',
'Login Wiki CheckUser'
)
end
function p._ip_output(username, IpOrRange, diff)
local globalContribsAlt
if IpOrRange == 'range' then
globalContribsAlt = extlink(
'https://xtools.wmflabs.org/globalcontribs/ipr-' .. mw.uri.encode(username, 'PATH'),
'old',
'XTools'
)
else
globalContribsAlt = extlink(
mw.uri.fullUrl('toollabs:guc', {user = username, by = 'wiki', blocks = 'true'}),
'old',
'GUC'
)
end
local text = {
'<span style="color:#730000;">',
username,
'</span> ',
'<span class="plainlinks tpl-permalink-reason" style="font-size:90%;">',
link('Special:GlobalContributions/' .. username, nil, 'global-contribs', 'Global contributions'),
' <sup>(',
globalContribsAlt,
')</sup>',
middot,
extlink(
'https://allblocksever.toolforge.org/?target=' .. mw.uri.encode(username),
'xwiki blocks',
'xwiki blocks'
),
middot,
extlink(
'https://whatismyipaddress.com/ip/' .. mw.uri.encode(username, 'PATH'),
'IP lookup',
'IP lookup'
),
middot,
extlink(
tostring(mw.uri.new('https://whois-referral.toolforge.org/gateway.py'):extend({
lookup = 'true',
ip = username,
})),
'WHOIS',
'WHOIS'
),
middot,
extlink(
'https://www.robtex.com/ip-lookup/' .. mw.uri.encode(username, 'PATH'),
'robtex',
'robtex'
),
middot,
link(
'Special:GlobalBlock',
{
wpAddress = username,
wpExpiry = 'other',
wpReason = 'other',
['wpReason-other'] = reason,
},
'gblock',
'global block'
),
p._difflink(diff),
middot,
link('Special:GlobalBlockList/' .. username, nil, 'glist', 'global block list'),
middot,
link('Special:AbuseLog', {wpSearchUser = username}, 'abuselog', 'abuse log'),
middot,
extlink(
'https://bullseye.toolforge.org/ip/' .. mw.uri.encode(username, 'PATH'),
'bullseye',
'bullseye'
),
middot,
extlink(
'https://ytools.toolforge.org/ip/?ip=' .. mw.uri.encode(username, 'PATH'),
'IP info',
'IP info'
),
middot,
p._lwcheckuser(username),
'</span>',
}
return table.concat(text, '')
end
function p._user_output(username, diff)
local text = {
'[[Special:Contributions/' .. username .. '|' .. username .. ']]',
' ',
'<span class="plainlinks tpl-permalink-reason" style="font-size:90%;">',
extlink(
mw.uri.fullUrl('toollabs:guc', {user = username, by = 'wiki', blocks = 'true'}),
'xwiki-contribs',
'GUC by wiki'
),
' <sup>(',
extlink(
'https://xtools.wmflabs.org/globalcontribs/' .. mw.uri.encode(username, 'PATH'),
'alt',
'XTools'
),
middot,
'[[Special:GlobalContributions/' .. username .. '|mw]]',
')</sup>',
middot,
extlink(
'https://allblocksever.toolforge.org/?target=' .. mw.uri.encode(username),
'xwiki blocks',
'xwiki blocks'
),
middot,
link(
'Special:CentralAuth',
{
target = username,
wpReason = 'other',
['wpReason-other'] = reason,
},
'CA',
'CentralAuth'
),
middot,
link(
'Special:GlobalBlock',
{
wpAddress = username,
wpExpiry = 'infinite',
wpReason = 'other',
['wpReason-other'] = reason,
},
'gblock',
'global block'
),
p._difflink(diff),
middot,
link('Special:GlobalBlockList/' .. username, nil, 'glist', 'global block list'),
middot,
link('Special:AbuseLog', {wpSearchUser = username}, 'abuselog', 'abuse log'),
middot,
extlink(
'https://spamcheck.toolforge.org/by-user?q=' .. mw.uri.encode(username, 'PATH'),
'SC',
'Spamcheck'
),
middot,
p._lwcheckuser(username),
'</span>',
}
return table.concat(text, '')
end
return p