-- 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, 'COIBot' ) end

function linkFunctions.ggl(snippets) -- Google search for the username return makeUrlLink( { host = 'www.google.com', path = '/search', query = {q = snippets.username}, }, 'Google' ) end

function linkFunctions.http(snippets) -- To see if an IP is serving a web page return makeUrlLink( { protocol = 'http', host = snippets.username }, 'http' ) end

function linkFunctions.msg(snippets) -- New message on user talk page return makeFullUrlLink( snippets.interwiki, 3, snippets.username, { action = 'edit', section = 'new', }, 'message' ) end

function linkFunctions.rbl(snippets) -- Realtime blacklists return makeUrlLink( { protocol = 'https', host = 'www.robtex.com', path = '/rbls/' .. snippets.username .. '.html', }, 'RBLs' ) 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' } }, 'RDNS' ) end

function linkFunctions.sbx(snippets) -- User sandbox return makeWikilink( snippets.interwiki, 2, snippets.username .. '/sandbox', 'sandbox' ) end

function linkFunctions.sfs(snippets) -- StopForumSpam return makeUrlLink( { protocol = 'http', host = 'www.stopforumspam.com', path = '/search/' .. snippets.username, }, 'StopForumSpam' ) 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 } }, 'global contribs' ) end

function linkFunctions.uc(snippets) -- User creation return makeWikilink( snippets.interwiki, -1, 'Log/newusers/' .. snippets.username, 'user creation' ) end

function linkFunctions.whois(snippets) -- WHOIS information for IPs return makeUrlLink( { protocol = 'https', host = 'www.robtex.com', path = '/ip/' .. snippets.username .. '.html', fragment = 'whois' }, '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, 'links to user page' ) end

return {linkFunctions = linkFunctions}