وحدة:UserLinks/extra
توثيق الوحدة [أنشئ] [محو الاختزان][استخدامات] [قوالب]
--------------------------------------------------------------------------------
-- This module holds extra link functions for use with [[Module:UserLinks]].
--
-- It is intended for experimenting with new link functions that will eventually
-- be added to the main module code.
--
-- Since this module is transcluded in only a small number of pages, changes
-- should cause little server overhead and should propagate quickly.
--
-- Link functions using the same link code as a function in the main module will
-- be ignored; please give your function a unique code.
--------------------------------------------------------------------------------
-- Load shared helper functions
local mShared = require('Module:UserLinks/shared')
local raiseError = mShared.raiseError
local makeWikitextError = mShared.makeWikitextError
local makeWikilink = mShared.makeWikilink
local makeUrlLink = mShared.makeUrlLink
local makeFullUrlLink = mShared.makeFullUrlLink
local message = mShared.message
local linkFunctions = {}
function linkFunctions.coibot(snippets)
-- COIBot report
return makeWikilink(
nil,
4,
'WikiProject Spam/UserReports/' .. snippets.username,
' '
)
end
function linkFunctions.ggl(snippets)
-- Google search for the username
return makeUrlLink(
{
host = 'www.google.com',
path = '/search',
query = {q = snippets.username},
},
'جوجل'
)
end
function linkFunctions.http(snippets)
-- To see if an IP is serving a web page
local host = snippets.username
if not host:match('^%d+%.%d+%.%d+%.%d+$') then
if host:match('^[%x:]+$') then
-- It's IPv6, use RFC 3986 IP-Literal syntax
host = '[' .. host .. ']'
else
-- It's neither IPv4 nor IPv6, return nothing
return ''
end
end
return makeUrlLink(
{
protocol = 'http',
host = host
},
'بروتوكول http'
)
end
function linkFunctions.msg(snippets)
-- New message on user talk page
return makeFullUrlLink(
snippets.interwiki,
3,
snippets.username,
{
action = 'edit',
section = 'new',
},
'رسالة جديدة'
)
end
function linkFunctions.rbl(snippets)
-- Realtime blacklists
return makeUrlLink(
{
protocol = 'https',
host = 'www.robtex.com',
path = '/ip-lookup/' .. snippets.username .. '#dnsbl',
},
'بحث BLs'
)
end
function linkFunctions.rdns(snippets)
-- Reverse DNS lookup
return makeUrlLink(
{
protocol = 'http',
host = 'www.dnswatch.info',
path = '/dns/dnslookup',
query = {
la = 'en',
host = snippets.username,
submit = 'Resolve'
}
},
'بحث DNS'
)
end
function linkFunctions.sbx(snippets)
-- User sandbox
return makeWikilink(
snippets.interwiki,
2,
snippets.username .. '/ملعب',
'ملعب'
)
end
function linkFunctions.sfs(snippets)
-- StopForumSpam
return makeUrlLink(
{
protocol = 'http',
host = 'www.stopforumspam.com',
path = '/search/' .. snippets.username,
},
'منتدى منع السبام'
)
end
function linkFunctions.sul2(snippets)
-- Global contribs, Luxo's tool
return makeUrlLink(
{
host = 'tools.wmflabs.org',
path = '/guc/index.php',
query = {
user = snippets.username,
lang = snippets.toolLang
}
},
'مساهمات عالمية'
)
end
function linkFunctions.uc(snippets)
-- User creation
return makeWikilink(
snippets.interwiki,
-1,
'Log/newusers/' .. snippets.username,
'سجل إنشاء المستخدم'
)
end
function linkFunctions.whois(snippets)
-- WHOIS information for IPs
return makeUrlLink(
{
protocol = 'https',
host = 'tools.wmflabs.org',
path = '/whois/gateway.py',
query = {
lookup = 'true',
ip = snippets.username,
},
},
'بحث بوابة Whois'
)
end
function linkFunctions.wlh(snippets)
-- Links to user page (what links here)
return makeWikilink(
snippets.interwiki,
-1,
'WhatLinksHere/'
.. mw.site.namespaces[2].name
.. ':'
.. snippets.username,
'ما يصل إلى صفحة المستخدم'
)
end
function linkFunctions.cr(snippets)
-- Change rights
return makeWikilink(
snippets.interwiki,
-1,
'UserRights/' .. snippets.username,
'تغييرات الصلاحيات'
)
end
return {linkFunctions = linkFunctions}