<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AUser_contrib</id>
	<title>Module:User contrib - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AUser_contrib"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:User_contrib&amp;action=history"/>
	<updated>2026-06-19T09:48:46Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Module:User_contrib&amp;diff=479940&amp;oldid=prev</id>
		<title>Zoran: Pywikibot 6.4.0</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:User_contrib&amp;diff=479940&amp;oldid=prev"/>
		<updated>2021-07-16T07:49:44Z</updated>

		<summary type="html">&lt;p&gt;Pywikibot 6.4.0&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;
local Userbox = require('Module:Userbox')&lt;br /&gt;
local getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
&lt;br /&gt;
local function urlencode(text)&lt;br /&gt;
	-- Return equivalent of {{urlencode:text}}.&lt;br /&gt;
	local function byte(char)&lt;br /&gt;
		return string.format('%%%02X', string.byte(char))&lt;br /&gt;
	end&lt;br /&gt;
	return text:gsub('[^ %w%-._]', byte):gsub(' ', '+')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatNumber(number)&lt;br /&gt;
	number = number:gsub(',', '') &lt;br /&gt;
	return  mw.getContentLanguage():formatNum( tonumber(number) )&lt;br /&gt;
end&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
function p.contrib(frame, args)&lt;br /&gt;
	if not args then&lt;br /&gt;
		args = getArgs(frame)&lt;br /&gt;
	end&lt;br /&gt;
	-- in the current template there is an {{#iferror: {{#expr: {{{1}}} }}. So I need to do a check to make sure the argument supplied is actually a number.&lt;br /&gt;
	local id_fc, id_c, info_fc, info_c&lt;br /&gt;
	local formated_count &lt;br /&gt;
	local count = args[1] or '1'&lt;br /&gt;
	&lt;br /&gt;
	if count:match('^[%d,]*$') then&lt;br /&gt;
		count = count:gsub(',', '') &lt;br /&gt;
		count = tonumber(count)&lt;br /&gt;
		formated_count = mw.getContentLanguage():formatNum( count )&lt;br /&gt;
    	-- 0-9,999 is shades of green&lt;br /&gt;
		if	   count &amp;lt; 1000  then id_fc = '#000000'; id_c = '#dddddd'; info_fc = '#000000'; info_c = '#eeeeee'&lt;br /&gt;
		elseif count &amp;lt; 2000  then id_fc = '#FFFFFF'; id_c = '#347235'; info_fc = '#000000'; info_c = '#728C00'	&lt;br /&gt;
		elseif count &amp;lt; 3000  then id_fc = '#FFFFFF'; id_c = '#6AA121'; info_fc = '#000000'; info_c = '#52D017'	&lt;br /&gt;
		elseif count &amp;lt; 4000  then id_fc = '#FFFFFF'; id_c = '#41A317'; info_fc = '#000000'; info_c = '#B2C248'	&lt;br /&gt;
		elseif count &amp;lt; 5000  then id_fc = '#FFFFFF'; id_c = '#4CC417'; info_fc = '#000000'; info_c = '#59E817'&lt;br /&gt;
		elseif count &amp;lt; 7500  then id_fc = '#FFFFFF'; id_c = '#54C571'; info_fc = '#000000'; info_c = '#239B56'&lt;br /&gt;
		elseif count &amp;lt; 10000 then id_fc = '#FFFFFF'; id_c = '#7FE817'; info_fc = '#000000'; info_c = '#387C44'&lt;br /&gt;
		&lt;br /&gt;
		-- 10,000-24,999 is shades of blue&lt;br /&gt;
		elseif count &amp;lt; 12500 then id_fc = '#000000'; id_c = '#33FFFF'; info_fc = '#000000'; info_c = '#99FFFF'&lt;br /&gt;
		elseif count &amp;lt; 15000 then id_fc = '#FFFFFF'; id_c = '#000080'; info_fc = '#000000'; info_c = '#157DEC'&lt;br /&gt;
		elseif count &amp;lt; 17500 then id_fc = '#FFFFFF'; id_c = '#15317E'; info_fc = '#000000'; info_c = '#1589FF'&lt;br /&gt;
		elseif count &amp;lt; 20000 then id_fc = '#FFFFFF'; id_c = '#0020C2'; info_fc = '#000000'; info_c = '#5CB3FF'&lt;br /&gt;
		elseif count &amp;lt; 25000 then id_fc = '#FFFFFF'; id_c = '#1569C7'; info_fc = '#000000'; info_c = '#C2DFFF'&lt;br /&gt;
			&lt;br /&gt;
		-- 25,000-49,999 is shades of red&lt;br /&gt;
		elseif count &amp;lt; 30000 then id_fc = '#000000'; id_c = '#FF0000'; info_fc = '#FFFFFF'; info_c = '#8C001A'&lt;br /&gt;
		elseif count &amp;lt; 35000 then id_fc = '#FFFFFF'; id_c = '#DC381F'; info_fc = '#FFFFFF'; info_c = '#800517'&lt;br /&gt;
		elseif count &amp;lt; 40000 then id_fc = '#FFFFFF'; id_c = '#F62817'; info_fc = '#000000'; info_c = '#C11B17'&lt;br /&gt;
		elseif count &amp;lt; 45000 then id_fc = '#000000'; id_c = '#C11B17'; info_fc = '#000000'; info_c = '#C04000'&lt;br /&gt;
		elseif count &amp;lt; 50000 then id_fc = '#FFFFFF'; id_c = '#8C001A'; info_fc = '#FFFFFF'; info_c = '#FF2400'&lt;br /&gt;
		-- 50,000-74,999 is shades of purple&lt;br /&gt;
		elseif count &amp;lt; 55000 then id_fc = '#FFFFFF'; id_c = '#4A235A'; info_fc = '#FFFFFF'; info_c = '#B048B5'&lt;br /&gt;
		elseif count &amp;lt; 60000 then id_fc = '#FFFFFF'; id_c = '#6C3483'; info_fc = '#000000'; info_c = '#7F38EC'&lt;br /&gt;
		elseif count &amp;lt; 65000 then id_fc = '#FFFFFF'; id_c = '#8E44AD'; info_fc = '#000000'; info_c = '#BB8FCE'&lt;br /&gt;
		elseif count &amp;lt; 70000 then id_fc = '#000000'; id_c = '#BB8FCE'; info_fc = '#000000'; info_c = '#E8DAEF'&lt;br /&gt;
		elseif count &amp;lt; 75000 then id_fc = '#000000'; id_c = '#E8DAEF'; info_fc = '#000000'; info_c = '#E0B0FF'&lt;br /&gt;
		&lt;br /&gt;
		-- 50,000-74,999 is shades of orange	&lt;br /&gt;
		elseif count &amp;lt; 80000  then id_fc = '#000000'; id_c = '#E66C2C'; info_fc = '#000000'; info_c = '#F87431'&lt;br /&gt;
		elseif count &amp;lt; 85000  then id_fc = '#000000'; id_c = '#FF8040'; info_fc = '#000000'; info_c = '#F70D1A'&lt;br /&gt;
		elseif count &amp;lt; 90000  then id_fc = '#000000'; id_c = '#F9966B'; info_fc = '#000000'; info_c = '#FFA62F'&lt;br /&gt;
		elseif count &amp;lt; 95000  then id_fc = '#000000'; id_c = '#F75D59'; info_fc = '#000000'; info_c = '#E78A61'&lt;br /&gt;
		elseif count &amp;lt; 100000 then id_fc = '#000000'; id_c = '#E55B3C'; info_fc = '#000000'; info_c = '#E67451'&lt;br /&gt;
		&lt;br /&gt;
		-- 100,000-124,999 is shades of yellow&lt;br /&gt;
		elseif count &amp;lt; 105000 then id_fc = '#FFD700'; id_c = '#000000'; info_fc = '#EDDA74'; info_c = '#000000'&lt;br /&gt;
		elseif count &amp;lt; 110000 then id_fc = '#000000'; id_c = '#FFF380'; info_fc = '#000000'; info_c = '#FFDB58'&lt;br /&gt;
		elseif count &amp;lt; 115000 then id_fc = '#000000'; id_c = '#FFFFC2'; info_fc = '#000000'; info_c = '#FDD017'&lt;br /&gt;
		elseif count &amp;lt; 120000 then id_fc = '#000000'; id_c = '#FFF8DC'; info_fc = '#000000'; info_c = '#EAC117'&lt;br /&gt;
		elseif count &amp;lt; 125000 then id_fc = '#000000'; id_c = '#FFFF00'; info_fc = '#000000'; info_c = '#EDE275'&lt;br /&gt;
		&lt;br /&gt;
		-- 125,000-149,999 is blue and red combos&lt;br /&gt;
		elseif count &amp;lt; 130000 then id_fc = '#000000'; id_c = '#F62817'; info_fc = '#FFFFFF'; info_c = '#571B7E'&lt;br /&gt;
		elseif count &amp;lt; 135000 then id_fc = '#FFFFFF'; id_c = '#15317E'; info_fc = '#000000'; info_c = '#DC381F'&lt;br /&gt;
		elseif count &amp;lt; 140000 then id_fc = '#FFFFFF'; id_c = '#0020C2'; info_fc = '#000000'; info_c = '#E42217'&lt;br /&gt;
		elseif count &amp;lt; 145000 then id_fc = '#FFFFFF'; id_c = '#571B7E'; info_fc = '#000000'; info_c = '#DC381F'&lt;br /&gt;
		elseif count &amp;lt; 150000 then id_fc = '#000000'; id_c = '#C11B17'; info_fc = '#000000'; info_c = '#43C6DB'&lt;br /&gt;
		&lt;br /&gt;
		-- 150,000-174,999 is green and orange combos&lt;br /&gt;
		elseif count &amp;lt; 155000 then id_fc = '#000000'; id_c = '#59E817'; info_fc = '#000000'; info_c = '#E9AB17'&lt;br /&gt;
		elseif count &amp;lt; 160000 then id_fc = '#000000'; id_c = '#E8A317'; info_fc = '#000000'; info_c = '#64E986'&lt;br /&gt;
		elseif count &amp;lt; 165000 then id_fc = '#000000'; id_c = '#5FFB17'; info_fc = '#000000'; info_c = '#D4A017'&lt;br /&gt;
		elseif count &amp;lt; 170000 then id_fc = '#000000'; id_c = '#D4A017'; info_fc = '#000000'; info_c = '#8AFB17'&lt;br /&gt;
		elseif count &amp;lt; 175000 then id_fc = '#000000'; id_c = '#98FF98'; info_fc = '#000000'; info_c = '#FFA62F'&lt;br /&gt;
		&lt;br /&gt;
		-- 150,000-174,999 is yellow and purple combos&lt;br /&gt;
		elseif count &amp;lt; 180000 then id_fc = '#000000'; id_c = '#FFFF00'; info_fc = '#FFFFFF'; info_c = '#4B0082'&lt;br /&gt;
		elseif count &amp;lt; 185000 then id_fc = '#000000'; id_c = '#8E35EF'; info_fc = '#000000'; info_c = '#C38EC7'&lt;br /&gt;
		elseif count &amp;lt; 190000 then id_fc = '#000000'; id_c = '#FBB917'; info_fc = '#000000'; info_c = '#C45AEC'&lt;br /&gt;
		elseif count &amp;lt; 195000 then id_fc = '#000000'; id_c = '#E238EC'; info_fc = '#000000'; info_c = '#FFA62F'&lt;br /&gt;
		elseif count &amp;lt; 200000 then id_fc = '#000000'; id_c = '#E8A317'; info_fc = '#000000'; info_c = '#C38EC7'&lt;br /&gt;
		&lt;br /&gt;
		-- 200,000+ is gold on black&lt;br /&gt;
		else                       id_fc = '#FDD017'; id_c = '#000000'; info_fc = '#FDD017'; info_c = '#000000'&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- If you don't provide an actual number, then you don't get the color formatting. &lt;br /&gt;
		 id_fc = '#000000'; id_c = '#dddddd'; info_fc = '#000000'; info_c = '#eeeeee'&lt;br /&gt;
		 formated_count = count&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local user_args = {}&lt;br /&gt;
	&lt;br /&gt;
	local language = ''&lt;br /&gt;
	if args['lang'] then language = 'the '.. args['lang'] ..' ' end&lt;br /&gt;
	local project = args['project'] or 'Wikipedia'&lt;br /&gt;
	local project_site = args['projsite'] or 'en.wikipedia.org'&lt;br /&gt;
	local user = 'user'&lt;br /&gt;
	local username = args[2] or mw.title.getCurrentTitle().baseText&lt;br /&gt;
	local url = args['url'] or args['link'] or 'https://xtools.wmflabs.org/ec/'.. project_site .. '?username=' ..urlencode(username)&lt;br /&gt;
	&lt;br /&gt;
	local deleted, articles, automated, distinct, unique, images, insane = '','','', '', '', '', ''&lt;br /&gt;
	if args['deleted'] then deleted 	= ', over &amp;lt;b&amp;gt;' ..formatNumber(args['deleted'])..'&amp;lt;/b&amp;gt; of which were to pages that are now deleted' end&lt;br /&gt;
	if args['articles'] then articles	= ', over &amp;lt;b&amp;gt;' ..formatNumber(args['articles'])..'&amp;lt;/b&amp;gt; of which were to articles' end&lt;br /&gt;
	if args['automated'] then automated = ', over &amp;lt;b&amp;gt;' ..formatNumber(args['automated'])..'&amp;lt;/b&amp;gt; of which were automated' end&lt;br /&gt;
	if args['distinct'] then distinct	= ', on over &amp;lt;b&amp;gt;' ..formatNumber(args['distinct'])..'&amp;lt;/b&amp;gt; distinct pages' end&lt;br /&gt;
	if args['unique'] then unique		= ', on over &amp;lt;b&amp;gt;' ..formatNumber(args['unique'])..'&amp;lt;/b&amp;gt; unique pages' end&lt;br /&gt;
	if args['images'] then images		= ', including over &amp;lt;b&amp;gt;' ..formatNumber(args['images'])..'&amp;lt;/b&amp;gt; uploaded images' end&lt;br /&gt;
	if args['insane'] then insane		= ' and, as a result, may be slightly insane' end&lt;br /&gt;
	if args['bot']    then user         = 'bot' end&lt;br /&gt;
	&lt;br /&gt;
	user_args['id-s']      = 12&lt;br /&gt;
	user_args['info-c']	   = args['info-bg'] or info_c&lt;br /&gt;
	user_args['id-c']      = args['id-bg'] or id_c&lt;br /&gt;
	user_args['info-fc']   = args['info-font'] or info_fc&lt;br /&gt;
	user_args['id-fc']	   = args['id-font'] or id_fc&lt;br /&gt;
	user_args['border-c'] = args['border']&lt;br /&gt;
	user_args['id'] = formated_count .. '+'&lt;br /&gt;
	&lt;br /&gt;
	if args['log'] == 'yes' then&lt;br /&gt;
		url = 'https://en.wikipedia.org/w/index.php?title=Special:Log&amp;amp;user='..urlencode(username)&lt;br /&gt;
		user_args['info'] = '&amp;lt;span class=&amp;quot;plainlinks neverexpand&amp;quot;&amp;gt;This user has logged ['..url..' more than '.. '&amp;lt;b&amp;gt;'..formated_count..'&amp;lt;/b&amp;gt;'..&lt;br /&gt;
		' moves or other log actions] on '.. language.. project&lt;br /&gt;
		.. automated&lt;br /&gt;
		.. deleted&lt;br /&gt;
		.. articles&lt;br /&gt;
		.. distinct&lt;br /&gt;
		.. unique&lt;br /&gt;
		.. images&lt;br /&gt;
		.. insane&lt;br /&gt;
		.. '.&amp;lt;/span&amp;gt;'&lt;br /&gt;
	else&lt;br /&gt;
		user_args['info'] = '&amp;lt;span class=&amp;quot;plainlinks neverexpand&amp;quot;&amp;gt;This '&lt;br /&gt;
	    .. user .. ' has made ['&lt;br /&gt;
		..url&lt;br /&gt;
		..' &amp;lt;span style=&amp;quot;color: '..user_args['info-fc']&lt;br /&gt;
		..'&amp;quot;&amp;gt; more than ' &lt;br /&gt;
		.. '&amp;lt;b&amp;gt;'..formated_count..'&amp;lt;/b&amp;gt;'&lt;br /&gt;
		.. ' contributions&amp;lt;/span&amp;gt;] to '.. language.. project&lt;br /&gt;
		.. automated&lt;br /&gt;
		.. deleted&lt;br /&gt;
		.. articles&lt;br /&gt;
		.. distinct&lt;br /&gt;
		.. unique&lt;br /&gt;
		.. images&lt;br /&gt;
		.. insane&lt;br /&gt;
		.. '.&amp;lt;/span&amp;gt;'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return Userbox.main('_userbox', user_args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>