<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://playzone.in.ua/wiki/mc//index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASynctable</id>
		<title>Модуль:Synctable - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://playzone.in.ua/wiki/mc//index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASynctable"/>
		<link rel="alternate" type="text/html" href="https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Synctable&amp;action=history"/>
		<updated>2026-04-13T07:28:04Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.28.3</generator>

	<entry>
		<id>https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Synctable&amp;diff=13158&amp;oldid=prev</id>
		<title>Softer: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Synctable&amp;diff=13158&amp;oldid=prev"/>
				<updated>2017-01-17T22:27:02Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 22:27, 17 января 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ru'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Softer</name></author>	</entry>

	<entry>
		<id>https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Synctable&amp;diff=13157&amp;oldid=prev</id>
		<title>AttemptToCallNil в 19:07, 22 июля 2015</title>
		<link rel="alternate" type="text/html" href="https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Synctable&amp;diff=13157&amp;oldid=prev"/>
				<updated>2015-07-22T19:07:11Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;p = {}&lt;br /&gt;
&lt;br /&gt;
p.synctable = function(f)&lt;br /&gt;
	local args = f.args or f&lt;br /&gt;
	if f == mw.getCurrentFrame() and args[1] == nil then&lt;br /&gt;
		args = f:getParent().args&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local statuses = {&lt;br /&gt;
		[&amp;quot;не начато&amp;quot;] = {&amp;quot;FFCCCC&amp;quot;, &amp;quot;CC2929&amp;quot;, &amp;quot;Не проводилась&amp;quot;, 0},&lt;br /&gt;
		[&amp;quot;в процессе&amp;quot;] = {&amp;quot;FFFF99&amp;quot;, &amp;quot;666614&amp;quot;, &amp;quot;Закреплена за участником&amp;quot;, 0},&lt;br /&gt;
		[&amp;quot;подтверждение&amp;quot;] = {&amp;quot;CCCCFF&amp;quot;, &amp;quot;2929CC&amp;quot;, &amp;quot;Требуется подтверждение синхронизации&amp;quot;, 0},&lt;br /&gt;
		[&amp;quot;частично&amp;quot;] = {&amp;quot;CCFF99&amp;quot;, &amp;quot;3D6614&amp;quot;, &amp;quot;Завершена (по мере возможности)&amp;quot;, 0},&lt;br /&gt;
		[&amp;quot;завершено&amp;quot;] = {&amp;quot;99FF99&amp;quot;, &amp;quot;146614&amp;quot;, &amp;quot;Завершена&amp;quot;, 0},&lt;br /&gt;
		[&amp;quot;устарело&amp;quot;] = {&amp;quot;FFCC99&amp;quot;, &amp;quot;995B1F&amp;quot;, &amp;quot;Требуется ресинхронизация&amp;quot;, 0},&lt;br /&gt;
		[&amp;quot;сильно устарело&amp;quot;] = {&amp;quot;CC0000&amp;quot;, &amp;quot;FFFFFF&amp;quot;, &amp;quot;Требуется срочная ресинхронизация!&amp;quot;, 0},&lt;br /&gt;
		[&amp;quot;неизвестно&amp;quot;] = {&amp;quot;CCCCCC&amp;quot;, &amp;quot;666666&amp;quot;, &amp;quot;Неизвестно или ошибочный статус&amp;quot;, 0}&lt;br /&gt;
	}&lt;br /&gt;
	local total = 0&lt;br /&gt;
	local tStatusOrder = {&amp;quot;не начато&amp;quot;, &amp;quot;в процессе&amp;quot;, &amp;quot;подтверждение&amp;quot;, &amp;quot;частично&amp;quot;, &amp;quot;завершено&amp;quot;, &amp;quot;устарело&amp;quot;, &amp;quot;сильно устарело&amp;quot;, &amp;quot;неизвестно&amp;quot;}&lt;br /&gt;
	&lt;br /&gt;
	local output = {}&lt;br /&gt;
	table.insert(output, '{|class=&amp;quot;wikitable collapsible collapsed&amp;quot; style=&amp;quot;width: 100%; text-align: center&amp;quot;\n!colspan=&amp;quot;5&amp;quot;|')&lt;br /&gt;
	local iresult = {}&lt;br /&gt;
	&lt;br /&gt;
	for k, v in ipairs(args) do&lt;br /&gt;
		local articleName, originalName, status, assignedUser, syncDay, syncMonth, syncYear, baseRevEn, baseRevRu = v:match(&amp;quot;([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);([^;]+)&amp;quot;) &lt;br /&gt;
		baseRevRu = mw.text.trim(baseRevRu)&lt;br /&gt;
		&lt;br /&gt;
		table.insert(iresult, ('|-\n|[[%s]] ([[:en:%s|%s]])\n'):format(articleName, originalName, originalName))&lt;br /&gt;
		&lt;br /&gt;
		local actualStatus&lt;br /&gt;
		if not statuses[status] then&lt;br /&gt;
			actualStatus = &amp;quot;неизвестно&amp;quot;&lt;br /&gt;
		elseif status == &amp;quot;частично&amp;quot; or status == &amp;quot;завершено&amp;quot; then&lt;br /&gt;
			local daysSinceSync = math.floor(os.difftime(os.time(), os.time({year=tonumber(syncYear), month=tonumber(syncMonth), day=tonumber(syncDay)})) / 86400)&lt;br /&gt;
			if daysSinceSync &amp;gt;= 90 then&lt;br /&gt;
				actualStatus = &amp;quot;сильно устарело&amp;quot;&lt;br /&gt;
			elseif daysSinceSync &amp;gt;= 30 then&lt;br /&gt;
				actualStatus = &amp;quot;устарело&amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				actualStatus = status&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			actualStatus = status&lt;br /&gt;
		end&lt;br /&gt;
		statusTable = statuses[actualStatus]&lt;br /&gt;
		&lt;br /&gt;
		statusTable[4] = statusTable[4] + 1&lt;br /&gt;
		&lt;br /&gt;
		table.insert(iresult, ('|style=&amp;quot;background: #%s; color: #%s&amp;quot;|%s\n'):format(statusTable[1], statusTable[2], statusTable[3]))&lt;br /&gt;
		&lt;br /&gt;
		if assignedUser == '—' then&lt;br /&gt;
			table.insert(iresult, '|—\n')&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(iresult, ('|[[User:%s|%s]]\n'):format(assignedUser, assignedUser))&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if syncDay == '—' then&lt;br /&gt;
			table.insert(iresult, '|—\n')&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(iresult, ('|%s.%s.%s\n'):format(syncDay, syncMonth, syncYear))&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if baseRevEn == '—' then&lt;br /&gt;
			table.insert(iresult, '|—\n')&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(iresult, ('|[[:en:Special:Diff/%s/0|Оригинал]], [[Special:Diff/%s/0|Перевод]]\n'):format(baseRevEn, baseRevRu))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local tStatuses = {}&lt;br /&gt;
	for i, v in ipairs(tStatusOrder) do&lt;br /&gt;
		local statusCount = statuses[v][4]&lt;br /&gt;
		table.insert(tStatuses, v .. ': ' .. statusCount)&lt;br /&gt;
		total = total + statusCount&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(output, '\n&amp;lt;table style=&amp;quot;width: 80%; line-height: 50%; border: 1px solid gray; margin: 0.5em 10%; border-collapse: collapse&amp;quot; title=&amp;quot;' .. table.concat(tStatuses, ', ') .. '&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;')&lt;br /&gt;
	local tStatusCells = {}&lt;br /&gt;
	for i, v in ipairs(tStatusOrder) do&lt;br /&gt;
		local statusCount = statuses[v][4]&lt;br /&gt;
		if statusCount ~= 0 then&lt;br /&gt;
			table.insert(tStatusCells, '&amp;lt;td style=&amp;quot;background-color: #' .. statuses[v][1] .. '; width: ' .. math.floor((statusCount/total) * 10000) / 100 .. '%&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;')&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(output, table.concat(tStatusCells) .. '&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;')&lt;br /&gt;
	table.insert(output, '\n|-\n!Название\n!Статус\n!Закреплено за\n!Дата синхронизации\n!Изменения\n')&lt;br /&gt;
	table.insert(output, table.concat(iresult))&lt;br /&gt;
	table.insert(output, '|}')&lt;br /&gt;
	&lt;br /&gt;
	return table.concat(output)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>AttemptToCallNil</name></author>	</entry>

	</feed>