<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.filipefonseca.pt/index.php?action=history&amp;feed=atom&amp;title=Module%3AUserLinks%2Fextra</id>
	<title>Module:UserLinks/extra - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.filipefonseca.pt/index.php?action=history&amp;feed=atom&amp;title=Module%3AUserLinks%2Fextra"/>
	<link rel="alternate" type="text/html" href="http://wiki.filipefonseca.pt/index.php?title=Module:UserLinks/extra&amp;action=history"/>
	<updated>2026-04-19T00:32:46Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>http://wiki.filipefonseca.pt/index.php?title=Module:UserLinks/extra&amp;diff=3216&amp;oldid=prev</id>
		<title>FilipeFonseca: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://wiki.filipefonseca.pt/index.php?title=Module:UserLinks/extra&amp;diff=3216&amp;oldid=prev"/>
		<updated>2021-07-08T08:36:23Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--------------------------------------------------------------------------------&lt;br /&gt;
-- This module holds extra link functions for use with [[Module:UserLinks]].&lt;br /&gt;
--&lt;br /&gt;
-- It is intended for experimenting with new link functions that will eventually&lt;br /&gt;
-- be added to the main module code.&lt;br /&gt;
--&lt;br /&gt;
-- Since this module is transcluded in only a small number of pages, changes&lt;br /&gt;
-- should cause little server overhead and should propagate quickly.&lt;br /&gt;
--&lt;br /&gt;
-- Link functions using the same link code as a function in the main module will&lt;br /&gt;
-- be ignored; please give your function a unique code.&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Load shared helper functions&lt;br /&gt;
local mShared = require('Module:UserLinks/shared')&lt;br /&gt;
local raiseError = mShared.raiseError&lt;br /&gt;
local makeWikitextError = mShared.makeWikitextError&lt;br /&gt;
local makeWikilink = mShared.makeWikilink&lt;br /&gt;
local makeUrlLink = mShared.makeUrlLink&lt;br /&gt;
local makeFullUrlLink = mShared.makeFullUrlLink&lt;br /&gt;
local message = mShared.message&lt;br /&gt;
&lt;br /&gt;
local linkFunctions = {}&lt;br /&gt;
&lt;br /&gt;
function linkFunctions.coibot(snippets)&lt;br /&gt;
	-- COIBot report&lt;br /&gt;
	return makeWikilink(&lt;br /&gt;
		nil,&lt;br /&gt;
		4,&lt;br /&gt;
		'WikiProject Spam/UserReports/' .. snippets.username,&lt;br /&gt;
		'COIBot'&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function linkFunctions.ggl(snippets)&lt;br /&gt;
	-- Google search for the username&lt;br /&gt;
	return makeUrlLink(&lt;br /&gt;
		{&lt;br /&gt;
			host = 'www.google.com',&lt;br /&gt;
			path = '/search',&lt;br /&gt;
			query = {q = snippets.username},&lt;br /&gt;
		},&lt;br /&gt;
		'Google'&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function linkFunctions.http(snippets)&lt;br /&gt;
	-- To see if an IP is serving a web page&lt;br /&gt;
&lt;br /&gt;
	local host = snippets.username&lt;br /&gt;
	if not host:match('^%d+%.%d+%.%d+%.%d+$') then&lt;br /&gt;
		if host:match('^[%x:]+$') then&lt;br /&gt;
			-- It's IPv6, use RFC 3986 IP-Literal syntax&lt;br /&gt;
			host = '[' .. host .. ']'&lt;br /&gt;
		else&lt;br /&gt;
			-- It's neither IPv4 nor IPv6, return nothing&lt;br /&gt;
			return ''&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return makeUrlLink(&lt;br /&gt;
		{&lt;br /&gt;
			protocol = 'http',&lt;br /&gt;
			host = host&lt;br /&gt;
		},&lt;br /&gt;
		'http'&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function linkFunctions.msg(snippets)&lt;br /&gt;
	-- New message on user talk page&lt;br /&gt;
	return makeFullUrlLink(&lt;br /&gt;
		snippets.interwiki,&lt;br /&gt;
		3,&lt;br /&gt;
		snippets.username,&lt;br /&gt;
		{&lt;br /&gt;
			action = 'edit',&lt;br /&gt;
			section = 'new',&lt;br /&gt;
		},&lt;br /&gt;
		'message'&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function linkFunctions.rbl(snippets)&lt;br /&gt;
	-- Realtime blacklists&lt;br /&gt;
	return makeUrlLink(&lt;br /&gt;
		{&lt;br /&gt;
			protocol = 'https',&lt;br /&gt;
			host = 'www.robtex.com',&lt;br /&gt;
			path = '/rbls/' .. snippets.username .. '.html',&lt;br /&gt;
		},&lt;br /&gt;
		'RBLs'&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function linkFunctions.rdns(snippets)&lt;br /&gt;
	-- Reverse DNS lookup&lt;br /&gt;
	return makeUrlLink(&lt;br /&gt;
		{&lt;br /&gt;
			protocol = 'http',&lt;br /&gt;
			host = 'www.dnswatch.info',&lt;br /&gt;
			path = '/dns/dnslookup',&lt;br /&gt;
			query = {&lt;br /&gt;
				la = 'en',&lt;br /&gt;
				host = snippets.username,&lt;br /&gt;
				submit = 'Resolve'&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		'RDNS'&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function linkFunctions.sbx(snippets)&lt;br /&gt;
	-- User sandbox&lt;br /&gt;
	return makeWikilink(&lt;br /&gt;
		snippets.interwiki,&lt;br /&gt;
		2,&lt;br /&gt;
		snippets.username .. '/sandbox',&lt;br /&gt;
		'sandbox'&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function linkFunctions.sfs(snippets)&lt;br /&gt;
	-- StopForumSpam&lt;br /&gt;
	return makeUrlLink(&lt;br /&gt;
		{&lt;br /&gt;
			protocol = 'http',&lt;br /&gt;
			host = 'www.stopforumspam.com',&lt;br /&gt;
			path = '/search/' .. snippets.username,&lt;br /&gt;
		},&lt;br /&gt;
		'StopForumSpam'&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function linkFunctions.sul2(snippets)&lt;br /&gt;
	-- Global contribs, Luxo's tool&lt;br /&gt;
	return makeUrlLink(&lt;br /&gt;
		{&lt;br /&gt;
			host = 'tools.wmflabs.org',&lt;br /&gt;
			path = '/guc/index.php',&lt;br /&gt;
			query = {&lt;br /&gt;
				user = snippets.username,&lt;br /&gt;
				lang = snippets.toolLang&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		'global contribs'&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function linkFunctions.uc(snippets)&lt;br /&gt;
	-- User creation&lt;br /&gt;
	return makeWikilink(&lt;br /&gt;
		snippets.interwiki,&lt;br /&gt;
		-1,&lt;br /&gt;
		'Log/newusers/' .. snippets.username,&lt;br /&gt;
		'user creation'&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function linkFunctions.whois(snippets)&lt;br /&gt;
	-- WHOIS information for IPs&lt;br /&gt;
	return makeUrlLink(&lt;br /&gt;
		{&lt;br /&gt;
			protocol = 'https',&lt;br /&gt;
			host = 'tools.wmflabs.org',&lt;br /&gt;
			path = '/whois/gateway.py',&lt;br /&gt;
			query = {&lt;br /&gt;
				lookup = 'true',&lt;br /&gt;
				ip = snippets.username,&lt;br /&gt;
			},&lt;br /&gt;
		},&lt;br /&gt;
		'WHOIS'&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function linkFunctions.wlh(snippets)&lt;br /&gt;
	-- Links to user page (what links here)&lt;br /&gt;
	return makeWikilink(&lt;br /&gt;
		snippets.interwiki,&lt;br /&gt;
		-1,&lt;br /&gt;
		'WhatLinksHere/'&lt;br /&gt;
			.. mw.site.namespaces[2].name&lt;br /&gt;
			.. ':'&lt;br /&gt;
			.. snippets.username,&lt;br /&gt;
		'links to user page'&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function linkFunctions.cr(snippets)&lt;br /&gt;
	-- Change rights&lt;br /&gt;
	return makeWikilink(&lt;br /&gt;
		snippets.interwiki,&lt;br /&gt;
		-1,&lt;br /&gt;
		'UserRights/' .. snippets.username,&lt;br /&gt;
		'change rights'&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return {linkFunctions = linkFunctions}&lt;/div&gt;</summary>
		<author><name>FilipeFonseca</name></author>
	</entry>
</feed>