<?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%3ATop_25_report%2Fsandbox</id>
	<title>Module:Top 25 report/sandbox - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ATop_25_report%2Fsandbox"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Top_25_report/sandbox&amp;action=history"/>
	<updated>2026-05-24T21:00:27Z</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:Top_25_report/sandbox&amp;diff=147293&amp;oldid=prev</id>
		<title>imported&gt;WOSlinker: use require(&quot;strict&quot;) instead of require(&quot;Module:No globals&quot;)</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Top_25_report/sandbox&amp;diff=147293&amp;oldid=prev"/>
		<updated>2022-10-21T09:54:19Z</updated>

		<summary type="html">&lt;p&gt;use require(&amp;quot;strict&amp;quot;) instead of require(&amp;quot;Module:No globals&amp;quot;)&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;
require(&amp;quot;strict&amp;quot;)&lt;br /&gt;
local Date = require(&amp;#039;Module:Date&amp;#039;)._Date&lt;br /&gt;
&lt;br /&gt;
local function range(date)&lt;br /&gt;
	local date2 = date + 6&lt;br /&gt;
	if date2:text(&amp;quot;%Y&amp;quot;) ~= date:text(&amp;quot;%Y&amp;quot;) then&lt;br /&gt;
		return date:text(&amp;quot;%B %-d, %Y&amp;quot;) .. &amp;quot; to &amp;quot; .. date2:text(&amp;quot;%B %-d, %Y&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		if not (date2:text(&amp;quot;%B&amp;quot;) == date:text(&amp;quot;%B&amp;quot;)) then&lt;br /&gt;
			return date:text(&amp;quot;%B %-d&amp;quot;) .. &amp;quot; to &amp;quot; .. date2:text(&amp;quot;%B %-d, %Y&amp;quot;)&lt;br /&gt;
		else&lt;br /&gt;
			return date:text(&amp;quot;%B %-d&amp;quot;) .. &amp;quot; to &amp;quot; .. date2:text(&amp;quot;%-d, %Y&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function line(date)&lt;br /&gt;
	local link = &amp;quot;[[Wikipedia:Top 25 Report/&amp;quot;&lt;br /&gt;
	local range = range(date)&lt;br /&gt;
&lt;br /&gt;
	link = link .. range .. &amp;quot;|&amp;quot; .. range .. &amp;quot;]]&amp;quot;&lt;br /&gt;
	return link&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function userLink(username)&lt;br /&gt;
	return string.format(&amp;quot;[[User:%s|%s]]&amp;quot;, username, username)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.list = function(frame)&lt;br /&gt;
	local text = &amp;quot;This article has been viewed enough times in a single week to appear in the [[Wikipedia:Top 25 Report|Top 25 Report]]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	frame = frame:getParent()&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local list = {}&lt;br /&gt;
&lt;br /&gt;
	local date&lt;br /&gt;
	local isUntil = false&lt;br /&gt;
	local errors = {}&lt;br /&gt;
&lt;br /&gt;
	for parameter, dateStr in pairs(frame.args) do&lt;br /&gt;
		dateStr = mw.text.trim(dateStr)&lt;br /&gt;
		if string.lower(dateStr) == &amp;quot;until&amp;quot; then&lt;br /&gt;
			isUntil = true&lt;br /&gt;
		elseif parameter == &amp;quot;collapse&amp;quot; then&lt;br /&gt;
			 -- Ignore the collapse parameter&lt;br /&gt;
		else&lt;br /&gt;
			local index = string.find(dateStr,&amp;#039;(&amp;#039;,1,true)&lt;br /&gt;
			local place = &amp;quot;&amp;quot;&lt;br /&gt;
			if index then&lt;br /&gt;
				place = string.sub(dateStr,index+1,-2)&lt;br /&gt;
				dateStr = string.sub(dateStr,0,index-1)&lt;br /&gt;
			end&lt;br /&gt;
			local newDate = Date(dateStr)&lt;br /&gt;
			if newDate == nil then&lt;br /&gt;
				table.insert(errors, dateStr)&lt;br /&gt;
			else&lt;br /&gt;
				if isUntil then&lt;br /&gt;
					isUntil = false&lt;br /&gt;
					date = date + 7&lt;br /&gt;
					while date &amp;lt; newDate do&lt;br /&gt;
						table.insert(list, line(date))&lt;br /&gt;
						date = date + 7&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				date = newDate&lt;br /&gt;
				&lt;br /&gt;
				local entry = line(date)&lt;br /&gt;
				if place ~= &amp;quot;&amp;quot; then&lt;br /&gt;
					entry = entry .. &amp;quot; (&amp;quot; .. place .. &amp;quot;)&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
				table.insert(list, entry)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local count = #list&lt;br /&gt;
	list.style = &amp;quot;display:inline-block&amp;quot;&lt;br /&gt;
	list = require(&amp;quot;Module:List&amp;quot;).makeList(&amp;quot;horizontal&amp;quot;, list)&lt;br /&gt;
&lt;br /&gt;
	if count == 0 then&lt;br /&gt;
		text = text .. &amp;quot;.&amp;quot;&lt;br /&gt;
		text = text .. list&lt;br /&gt;
	elseif count == 1 then&lt;br /&gt;
		list = &amp;quot; The week in which this happened: &amp;quot; .. list&lt;br /&gt;
		text = text .. &amp;quot;.&amp;quot;&lt;br /&gt;
		text = text .. list&lt;br /&gt;
	elseif (args[&amp;quot;collapse&amp;quot;] == &amp;quot;yes&amp;quot; or (args[&amp;quot;collapse&amp;quot;] == nil and count &amp;gt;= 10)) then&lt;br /&gt;
		text = text .. &amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;quot; .. tostring(count) .. &amp;quot;&amp;#039;&amp;#039;&amp;#039; times.&amp;quot;&lt;br /&gt;
		text = &amp;#039;&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&amp;#039; .. text .. &amp;#039; The weeks in which this happened:&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;#039;.. list .. &amp;#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		list = &amp;quot; The weeks in which this happened: &amp;quot; .. list&lt;br /&gt;
		text = text .. &amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;quot; .. tostring(count) .. &amp;quot;&amp;#039;&amp;#039;&amp;#039; times.&amp;quot;&lt;br /&gt;
		text = text .. list&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if mw.title.getCurrentTitle().namespace == 1 then&lt;br /&gt;
		text = text .. &amp;quot;[[Category:Pages in the Top 25 Report]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if #errors &amp;gt; 0 then&lt;br /&gt;
		text = text .. &amp;quot;\n\n&amp;lt;big&amp;gt;&amp;lt;span style=\&amp;quot;color:red\&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;The following dates couldn&amp;#039;t be parsed:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/big&amp;gt;\n#&amp;quot;&lt;br /&gt;
		text = text .. table.concat(errors,&amp;quot;\n#&amp;quot;) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return frame:expandTemplate{title = &amp;quot;tmbox&amp;quot;, args = {text = text, image = &amp;quot;[[File:Article blue.svg|35px|link = ]]&amp;quot;, textstyle = &amp;quot;text-align: left;&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.header = function(frame)&lt;br /&gt;
	local text = frame:expandTemplate{title = &amp;quot;Wikipedia:Top 25 Report/Template:Header&amp;quot;, args = {}}&lt;br /&gt;
	text = text .. &amp;quot;__NOTOC__\n&amp;quot;&lt;br /&gt;
	if mw.title.getCurrentTitle().subpageText == &amp;quot;Report header&amp;quot; then&lt;br /&gt;
		return text&lt;br /&gt;
	end&lt;br /&gt;
	frame = frame:getParent()&lt;br /&gt;
	&lt;br /&gt;
	local date = Date(frame.args[1])&lt;br /&gt;
	text = text .. &amp;#039;&amp;lt;div style=&amp;quot;height:10px;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;\n&amp;#039;&lt;br /&gt;
	text = text .. &amp;quot;== Most Popular Wikipedia Articles of the Week (&amp;quot;&lt;br /&gt;
	text = text .. range(date) .. &amp;quot;) ==\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	local count = 0&lt;br /&gt;
	for index, nameStr in pairs(frame.args) do&lt;br /&gt;
		if not (index == 1) then&lt;br /&gt;
			count = count + 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if count &amp;gt; 0 then&lt;br /&gt;
		text = text .. &amp;quot;&amp;#039;&amp;#039;Prepared with commentary by &amp;quot;&lt;br /&gt;
&lt;br /&gt;
		if count == 1 then&lt;br /&gt;
			text = text .. userLink(frame.args[2])&lt;br /&gt;
		elseif count == 2 then&lt;br /&gt;
			text = text .. userLink(frame.args[2]) .. &amp;quot; and &amp;quot; .. userLink(frame.args[3])&lt;br /&gt;
		else&lt;br /&gt;
			local i = 2&lt;br /&gt;
			while i &amp;lt;= count do&lt;br /&gt;
				text = text .. userLink(frame.args[i]) .. &amp;quot;, &amp;quot;&lt;br /&gt;
				i = i + 1&lt;br /&gt;
			end&lt;br /&gt;
			text = text .. &amp;quot; and &amp;quot; .. userLink(frame.args[count+1])&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local key = &amp;quot; &amp;quot;&lt;br /&gt;
&lt;br /&gt;
	text = text .. &amp;quot;&amp;#039;&amp;#039;\n\n← [[Wikipedia:Top 25 Report/&amp;quot;&lt;br /&gt;
	if frame.args[1] == &amp;quot;January 6, 2013&amp;quot; then&lt;br /&gt;
		text = text .. &amp;quot;December 2012|December 2012 monthly report]]&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		text = text .. range(date-7) .. &amp;quot;|Last week&amp;#039;s report]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if mw.title.getCurrentTitle().subpageText ~= &amp;quot;Top 25 Report&amp;quot; then&lt;br /&gt;
		text = text .. &amp;quot; – [[Wikipedia:Top 25 Report/&amp;quot; .. range(date+7) .. &amp;quot;|Next week&amp;#039;s report]] →&amp;quot;&lt;br /&gt;
		key = &amp;quot;Top 25 &amp;quot; .. date:text(&amp;quot;%Y%m%d&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	if mw.title.getCurrentTitle().namespace == 4 then&lt;br /&gt;
		text = text .. &amp;quot;[[Category:Wikipedia Top 25 Report|&amp;quot; .. key .. &amp;quot;]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;WOSlinker</name></author>
	</entry>
</feed>