<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ACheckuser</id>
	<title>Module:Checkuser - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ACheckuser"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Checkuser&amp;action=history"/>
	<updated>2026-04-09T02:18:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Checkuser&amp;diff=135562&amp;oldid=prev</id>
		<title>imported&gt;Dreamy Jazz: cuSearchType no longer exists</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Checkuser&amp;diff=135562&amp;oldid=prev"/>
		<updated>2022-10-24T14:34:45Z</updated>

		<summary type="html">&lt;p&gt;cuSearchType no longer exists&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local getArgs = function(fr)&lt;br /&gt;
	return require(&amp;#039;Module:Arguments&amp;#039;).getArgs(fr, {&lt;br /&gt;
		trim = true,&lt;br /&gt;
		removeBlanks = true&lt;br /&gt;
	})&lt;br /&gt;
end&lt;br /&gt;
local noping = function(name)&lt;br /&gt;
	return require(&amp;#039;Module:No ping&amp;#039;)._main({name})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local middot = &amp;#039;&amp;amp;nbsp;&amp;lt;b&amp;gt;&amp;amp;middot;&amp;lt;/b&amp;gt;&amp;amp;#32;&amp;#039;&lt;br /&gt;
local spi = &amp;#039;Wikipedia:Sockpuppet investigations&amp;#039;&lt;br /&gt;
local extlink = function(url, text)&lt;br /&gt;
	return &amp;#039;[&amp;#039; .. tostring(url) .. (text and &amp;#039; &amp;#039; .. text or &amp;#039;&amp;#039;) .. &amp;#039;]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
local link = function(page, param, text)&lt;br /&gt;
	return extlink(mw.uri.fullUrl(page, param), text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.user(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return p._user(args[&amp;#039;User&amp;#039;] or args[1], args[&amp;#039;master name&amp;#039;], args[&amp;#039;master&amp;#039;])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._user(sock, mastername, master)&lt;br /&gt;
	if not sock then&lt;br /&gt;
		return (&lt;br /&gt;
			&amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;No username provided.&amp;lt;/strong&amp;gt;&amp;#039; ..&lt;br /&gt;
			&amp;#039;[[Category:Checkuser with no specified user]]&amp;#039;&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	local span = mw.html.create(&amp;#039;span&amp;#039;):attr(&amp;#039;class&amp;#039;, &amp;#039;plainlinks cuEntry&amp;#039;)&lt;br /&gt;
	local curtitle = mw.title.getCurrentTitle()&lt;br /&gt;
	local links = {&lt;br /&gt;
		&amp;#039;[[User talk:&amp;#039; .. sock .. &amp;#039;|talk]]&amp;#039; ..&lt;br /&gt;
			&amp;#039;&amp;lt;sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 120%;&amp;quot;&amp;gt;&amp;#039; ..&lt;br /&gt;
				link(&amp;#039;User talk:&amp;#039; .. sock, {&lt;br /&gt;
					action = &amp;#039;edit&amp;#039;,&lt;br /&gt;
					section = &amp;#039;new&amp;#039;&lt;br /&gt;
				}, &amp;#039;&amp;lt;span style=&amp;quot;color: grey;&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&amp;#039;) ..&lt;br /&gt;
			&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/sup&amp;gt;&amp;#039;,&lt;br /&gt;
		link(&amp;#039;User:&amp;#039; .. sock, (function()&lt;br /&gt;
			local param = {&lt;br /&gt;
				action = &amp;#039;edit&amp;#039;,&lt;br /&gt;
				preload = &amp;#039;Template:Checkuser/Preload&amp;#039; .. (master == &amp;#039;yes&amp;#039; and &amp;#039; master&amp;#039; or &amp;#039;&amp;#039;)&lt;br /&gt;
			}&lt;br /&gt;
			if master ~= &amp;#039;yes&amp;#039; then&lt;br /&gt;
				param[&amp;#039;preloadparams[]&amp;#039;] = (&lt;br /&gt;
					mastername and&lt;br /&gt;
					mastername or&lt;br /&gt;
					&amp;#039;&amp;lt;!-- insert sock master here --&amp;gt;&amp;#039;&lt;br /&gt;
				)&lt;br /&gt;
			end&lt;br /&gt;
			return param&lt;br /&gt;
		end)(), &amp;#039;tag&amp;#039;),&lt;br /&gt;
		&amp;#039;[[Special:Contributions/&amp;#039; .. sock .. &amp;#039;|contribs]]&amp;#039; ..&lt;br /&gt;
			&amp;#039;&amp;lt;span class=&amp;quot;sysop-show&amp;quot;&amp;gt;&amp;#039;,&lt;br /&gt;
		&amp;#039;[[Special:DeletedContributions/&amp;#039; .. sock .. &amp;#039;|deleted contribs]]&amp;#039; ..&lt;br /&gt;
			&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;,&lt;br /&gt;
		link(&amp;#039;Special:Log&amp;#039;, {&lt;br /&gt;
			user = sock&lt;br /&gt;
		}, &amp;#039;logs&amp;#039;),&lt;br /&gt;
		link(&amp;#039;Special:AbuseLog&amp;#039;, {&lt;br /&gt;
			wpSearchUser = sock&lt;br /&gt;
		}, &amp;#039;filter log&amp;#039;) ..&lt;br /&gt;
			&amp;#039;&amp;lt;span class=&amp;quot;sysop-show&amp;quot;&amp;gt;&amp;#039;,&lt;br /&gt;
		&amp;#039;[[Special:Block/&amp;#039; .. sock .. &amp;#039;|block user]]&amp;#039; ..&lt;br /&gt;
		(function()&lt;br /&gt;
			if curtitle:isSubpageOf(mw.title.new(spi)) then&lt;br /&gt;
				return (&lt;br /&gt;
					middot .. link(&amp;#039;Special:Block&amp;#039;, {&lt;br /&gt;
						wpBlockAddress = sock,&lt;br /&gt;
						wpExpiry = &amp;#039;indefinite&amp;#039;,&lt;br /&gt;
						wpReason = &amp;#039;Abusing [[WP:Sock puppetry|multiple accounts]]&amp;#039;,&lt;br /&gt;
						[&amp;#039;wpReason-other&amp;#039;] = &amp;#039;Please see: [[:w:en:&amp;#039; .. spi .. &amp;#039;/&amp;#039; ..&lt;br /&gt;
							mw.text.split(curtitle.text, &amp;#039;/&amp;#039;)[2] ..&lt;br /&gt;
						&amp;#039;]]&amp;#039;&lt;br /&gt;
					}, &amp;#039;spi block&amp;#039;)&lt;br /&gt;
				)&lt;br /&gt;
			else&lt;br /&gt;
				return &amp;#039;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		end)() ..&lt;br /&gt;
			&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;,&lt;br /&gt;
		link(&amp;#039;Special:Log/block&amp;#039;, {&lt;br /&gt;
			page = &amp;#039;User:&amp;#039; .. sock&lt;br /&gt;
		}, &amp;#039;block log&amp;#039;),&lt;br /&gt;
		&amp;#039;[[:m:Special:CentralAuth/&amp;#039; .. sock .. &amp;#039;|CA]]&amp;#039; ..&lt;br /&gt;
			&amp;#039;&amp;lt;span class=&amp;quot;cuLink checkuser-show&amp;quot;&amp;gt;&amp;#039;,&lt;br /&gt;
		link(&amp;#039;Special:CheckUser&amp;#039;, (function()&lt;br /&gt;
			local param = {&lt;br /&gt;
				user = sock&lt;br /&gt;
			}&lt;br /&gt;
			if mw.text.split(curtitle.prefixedText, &amp;#039;/&amp;#039;)[1] == spi then&lt;br /&gt;
				param[&amp;#039;reason&amp;#039;] = sock .. &amp;#039; from [[&amp;#039; .. curtitle.prefixedText .. &amp;#039;]]&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			return param&lt;br /&gt;
		end)(), &amp;#039;CheckUser&amp;#039;) ..&lt;br /&gt;
		&amp;#039;(&amp;#039; .. link(&amp;#039;Special:CheckUserLog&amp;#039;, {&lt;br /&gt;
			cuSearch = sock&lt;br /&gt;
		}, &amp;#039;log&amp;#039;) .. &amp;#039;)&amp;#039;,&lt;br /&gt;
		link(&amp;#039;Special:Investigate&amp;#039;, (function()&lt;br /&gt;
			local param = {&lt;br /&gt;
				targets = sock&lt;br /&gt;
			}&lt;br /&gt;
			if curtitle.prefixedText == spi .. &amp;#039;/&amp;#039; .. table.concat({&lt;br /&gt;
				mw.text.split(curtitle.prefixedText, &amp;#039;/&amp;#039;)[2],&lt;br /&gt;
				mw.text.split(curtitle.prefixedText, &amp;#039;/&amp;#039;)[3]&lt;br /&gt;
			}, &amp;#039;/&amp;#039;) then&lt;br /&gt;
				param[&amp;#039;reason&amp;#039;] = sock .. &amp;#039; from [[&amp;#039; .. curtitle.prefixedText .. &amp;#039;]]&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			return param&lt;br /&gt;
		end)(), &amp;#039;investigate&amp;#039;),&lt;br /&gt;
		extlink(&lt;br /&gt;
			tostring(mw.uri.new(&amp;#039;//checkuser.wikimedia.org/w/index.php&amp;#039;):extend({&lt;br /&gt;
				title = &amp;#039;Special:Search&amp;#039;,&lt;br /&gt;
				search = sock,&lt;br /&gt;
				ns0 = 1,&lt;br /&gt;
				ns2 = 1,&lt;br /&gt;
				ns14 = 1&lt;br /&gt;
			})),&lt;br /&gt;
			&amp;#039;cuwiki&amp;#039;&lt;br /&gt;
		) ..&lt;br /&gt;
			&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
	span = span:wikitext(table.concat({&lt;br /&gt;
		noping(sock),&lt;br /&gt;
		&amp;#039;(&amp;#039; .. table.concat(links, middot) .. &amp;#039;)&amp;#039;&lt;br /&gt;
	}, &amp;#039; &amp;#039;))&lt;br /&gt;
	return tostring(span) .. &amp;#039;__NOINDEX__&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.ip(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return p._ip(args[&amp;#039;User&amp;#039;] or args[1], args[&amp;#039;master name&amp;#039;])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._ip(ip, mastername)&lt;br /&gt;
	if not ip then&lt;br /&gt;
		return (&lt;br /&gt;
			&amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;No username provided.&amp;lt;/strong&amp;gt;&amp;#039; ..&lt;br /&gt;
			&amp;#039;[[Category:Checkip with no specified IP]]&amp;#039;&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	local span = mw.html.create(&amp;#039;span&amp;#039;):attr(&amp;#039;class&amp;#039;, &amp;#039;plainlinks neverexpand cuEntry&amp;#039;)&lt;br /&gt;
	local curtitle = mw.title.getCurrentTitle()&lt;br /&gt;
	local links = {&lt;br /&gt;
		&amp;#039;[[User talk:&amp;#039; .. ip .. &amp;#039;|talk]]&amp;#039; ..&lt;br /&gt;
			&amp;#039;&amp;lt;sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 120%;&amp;quot;&amp;gt;&amp;#039; ..&lt;br /&gt;
				link(&amp;#039;User talk:&amp;#039; .. ip, {&lt;br /&gt;
					action = &amp;#039;edit&amp;#039;,&lt;br /&gt;
					section = &amp;#039;new&amp;#039;&lt;br /&gt;
				}, &amp;#039;&amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&amp;#039;) ..&lt;br /&gt;
			&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/sup&amp;gt;&amp;#039;,&lt;br /&gt;
		link(&amp;#039;User:&amp;#039; .. ip, {&lt;br /&gt;
			action = &amp;#039;edit&amp;#039;,&lt;br /&gt;
			preload = &amp;#039;Template:Checkip/Preload&amp;#039;,&lt;br /&gt;
			[&amp;#039;preloadparams[]&amp;#039;] = (&lt;br /&gt;
				mastername and&lt;br /&gt;
				mastername or&lt;br /&gt;
				&amp;#039;&amp;lt;!-- Insert sock master name here --&amp;gt;&amp;#039;&lt;br /&gt;
			)&lt;br /&gt;
		}, &amp;#039;tag&amp;#039;),&lt;br /&gt;
		&amp;#039;[[Special:Contributions/&amp;#039; .. ip .. &amp;#039;|contribs]]&amp;#039;,&lt;br /&gt;
		link(&amp;#039;Special:AbuseLog&amp;#039;, {&lt;br /&gt;
			wpSearchUser = ip&lt;br /&gt;
		}, &amp;#039;filter log&amp;#039;),&lt;br /&gt;
		extlink(&lt;br /&gt;
			tostring(mw.uri.new(&amp;#039;//tools.wmflabs.org/whois/gateway.py&amp;#039;):extend({&lt;br /&gt;
				lookup = &amp;#039;true&amp;#039;,&lt;br /&gt;
				ip = ip&lt;br /&gt;
			})),&lt;br /&gt;
			&amp;#039;WHOIS&amp;#039;&lt;br /&gt;
		),&lt;br /&gt;
		extlink(&lt;br /&gt;
			tostring(mw.uri.new(&amp;#039;//www.robtex.com/rbls/&amp;#039; .. ip .. &amp;#039;.html&amp;#039;)),&lt;br /&gt;
			&amp;#039;RBLs&amp;#039;&lt;br /&gt;
		),&lt;br /&gt;
		extlink(&lt;br /&gt;
			tostring(mw.uri.new(&amp;#039;//ipcheck.toolforge.org/index.php&amp;#039;):extend({&lt;br /&gt;
				ip = ip&lt;br /&gt;
			})),&lt;br /&gt;
			&amp;#039;proxy check&amp;#039;&lt;br /&gt;
		) ..&lt;br /&gt;
			&amp;#039;&amp;lt;span class=&amp;quot;sysop-show&amp;quot;&amp;gt;&amp;#039;,&lt;br /&gt;
		&amp;#039;[[Special:Block/&amp;#039; .. ip .. &amp;#039;|block user]]&amp;#039; .. (function()&lt;br /&gt;
			if curtitle:isSubpageOf(mw.title.new(spi)) then&lt;br /&gt;
				return (&lt;br /&gt;
					middot .. link(&amp;#039;Special:Block&amp;#039;, {&lt;br /&gt;
						wpTarget = ip,&lt;br /&gt;
						wpReason = &amp;#039;Abusing [[WP:Sock puppetry|multiple accounts]]&amp;#039;,&lt;br /&gt;
						[&amp;#039;wpReason-other&amp;#039;] = &amp;#039;Please see: [[:w:en:&amp;#039; .. spi .. &amp;#039;/&amp;#039; ..&lt;br /&gt;
							mw.text.split(curtitle.text, &amp;#039;/&amp;#039;)[2] ..&lt;br /&gt;
						&amp;#039;]]&amp;#039;&lt;br /&gt;
					}, &amp;#039;spi block&amp;#039;)&lt;br /&gt;
				)&lt;br /&gt;
			else&lt;br /&gt;
				return &amp;#039;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		end)() ..&lt;br /&gt;
			&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;,&lt;br /&gt;
		link(&amp;#039;Special:Log/block&amp;#039;, {&lt;br /&gt;
			page = &amp;#039;User:&amp;#039; .. ip&lt;br /&gt;
		}, &amp;#039;block log&amp;#039;),&lt;br /&gt;
		extlink(&lt;br /&gt;
			tostring(mw.uri.new(&amp;#039;//guc.toolforge.org/&amp;#039;):extend({&lt;br /&gt;
				by = &amp;#039;date&amp;#039;,&lt;br /&gt;
				user = ip&lt;br /&gt;
			})),&lt;br /&gt;
			&amp;#039;cross-wiki contribs&amp;#039;&lt;br /&gt;
		) ..&lt;br /&gt;
			&amp;#039;&amp;lt;span class=&amp;quot;cuLink checkuser-show&amp;quot;&amp;gt;&amp;#039;,&lt;br /&gt;
		link(&amp;#039;Special:CheckUser&amp;#039;, (function()&lt;br /&gt;
			local param = {&lt;br /&gt;
				ip = ip&lt;br /&gt;
			}&lt;br /&gt;
			if curtitle.prefixedText == spi .. &amp;#039;/&amp;#039; .. table.concat({&lt;br /&gt;
				mw.text.split(curtitle.prefixedText, &amp;#039;/&amp;#039;)[2],&lt;br /&gt;
				mw.text.split(curtitle.prefixedText, &amp;#039;/&amp;#039;)[3]&lt;br /&gt;
			}, &amp;#039;/&amp;#039;) then&lt;br /&gt;
				param[&amp;#039;reason&amp;#039;] = &amp;#039;[[&amp;#039; .. curtitle.prefixedText .. &amp;#039;]]&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			return param&lt;br /&gt;
		end)(), &amp;#039;CheckUser&amp;#039;) .. &amp;#039; &amp;#039; ..&lt;br /&gt;
		&amp;#039;(&amp;#039; .. link(&amp;#039;Special:CheckUserLog&amp;#039;, {&lt;br /&gt;
			cuSearch = ip&lt;br /&gt;
		}, &amp;#039;log&amp;#039;) .. &amp;#039;)&amp;#039; ..&lt;br /&gt;
			&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
	span = span:wikitext(table.concat({&lt;br /&gt;
		noping(ip),&lt;br /&gt;
		&amp;#039;(&amp;#039; .. table.concat(links, middot) .. &amp;#039;)&amp;#039;&lt;br /&gt;
	}, &amp;#039; &amp;#039;))&lt;br /&gt;
	return tostring(span)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Dreamy Jazz</name></author>
	</entry>
</feed>