モジュール: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,
--		'COIBot'
--	)
-- end
function linkFunctions.ggl(snippets)
	-- Google search for the username
	return makeUrlLink(
		{
			host = 'www.google.co.jp',
			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 = '編集',
			section = '作成',
		},
		'メッセージ'
	)
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 = 'ja',
				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
			}
		},
		'他P履歴'
	)
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 = '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.namespaces2.name
			.. ':'
			.. snippets.username,
		'利用者ページリンク元'
	)
end
function linkFunctions.cr(snippets)
	-- Change rights
	return makeWikilink(
		snippets.interwiki,
		-1,
		'UserRights/' .. snippets.username,
		'権限変更'
	)
end
return {linkFunctions = linkFunctions}