<?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%3ASandbox%2FPawe%C5%82_Ziemian%2Ftest</id>
	<title>Module:Sandbox/Paweł Ziemian/test - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FPawe%C5%82_Ziemian%2Ftest"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Pawe%C5%82_Ziemian/test&amp;action=history"/>
	<updated>2026-07-31T17:34:07Z</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:Sandbox/Pawe%C5%82_Ziemian/test&amp;diff=145967&amp;oldid=prev</id>
		<title>imported&gt;Paweł Ziemian: test skryptu</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Pawe%C5%82_Ziemian/test&amp;diff=145967&amp;oldid=prev"/>
		<updated>2016-04-11T17:47:42Z</updated>

		<summary type="html">&lt;p&gt;test skryptu&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local m = {}&lt;br /&gt;
&lt;br /&gt;
function m.D1(frame)&lt;br /&gt;
	mw.logObject(frame.args[1], &amp;quot;frame.args[1]&amp;quot;)&lt;br /&gt;
	return frame.args[1]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
m.NumberOfArticlesBetween = function(frame)&lt;br /&gt;
	local pf = frame:getParent()&lt;br /&gt;
	local start = frame.args[1] or pf.args[1]&lt;br /&gt;
	if not start then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local stop =  frame.args[2] or pf.args[2]&lt;br /&gt;
	if not stop then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local content = mw.title.getCurrentTitle():getContent()&lt;br /&gt;
	if not content then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local startPattern = &amp;quot;&amp;lt;!--&amp;quot;..start..&amp;quot;--&amp;gt;&amp;quot;&lt;br /&gt;
	local startPosition = string.find(content, startPattern, 1, true)&lt;br /&gt;
	if not startPosition then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	startPosition = startPosition + #startPattern&lt;br /&gt;
	&lt;br /&gt;
	local stopPattern = &amp;quot;&amp;lt;!--&amp;quot;..stop..&amp;quot;--&amp;gt;&amp;quot;&lt;br /&gt;
	local stopPosition = string.find(content, stopPattern, startPosition, true)&lt;br /&gt;
	if not stopPosition then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	stopPosition = stopPosition - 1&lt;br /&gt;
	if startPosition &amp;gt;= stopPosition then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local text = string.sub(content, startPosition, stopPosition)&lt;br /&gt;
	local _, count = mw.ustring.gsub(text, &amp;quot;(%[%[[^%[%]]-%]%])&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
	local _, files = mw.ustring.gsub(text, &amp;quot;(%[%[Plik:[^%[%]]-%]%])&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
	count = count - files&lt;br /&gt;
	&lt;br /&gt;
	local threshold = tonumber(frame.args.threshold or pf.args.threshold) or 1&lt;br /&gt;
	if count &amp;lt; threshold then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local lang = mw.getContentLanguage()&lt;br /&gt;
	local number = lang:formatNum(count)&lt;br /&gt;
	local articles = lang:convertPlural(count, { frame.args[4] or pf.args[4] or &amp;quot;article&amp;quot;, frame.args[5] or pf.args[6] or &amp;quot;articles&amp;quot; })&lt;br /&gt;
&lt;br /&gt;
	local result, _ = string.gsub(frame.args[3] or pf.args[3] or &amp;quot;&amp;lt;small&amp;gt;($1)&amp;lt;/small&amp;gt;&amp;quot;, &amp;quot;$1&amp;quot;, number..&amp;quot;&amp;amp;nbsp;&amp;quot;..articles)&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
m.countLinks = function(frame)&lt;br /&gt;
	local text = frame.args[1]&lt;br /&gt;
	if text then&lt;br /&gt;
		text = mw.text.trim(text)&lt;br /&gt;
		local _, count = mw.ustring.gsub(text, &amp;quot;(%[%[[^%[%]]-%]%])&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
		if count &amp;gt;= 2 then&lt;br /&gt;
			local lang = mw.getContentLanguage()&lt;br /&gt;
			local number = lang:formatNum(count)&lt;br /&gt;
			return text .. &amp;quot;&amp;lt;small&amp;gt; (&amp;quot;..number..&amp;quot;&amp;amp;nbsp;articles)&amp;lt;/small&amp;gt;&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			return text&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
m.goodCounter = function(frame)&lt;br /&gt;
	local fullText = frame.args[1]&lt;br /&gt;
	if not fullText then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	function testlink(text)&lt;br /&gt;
		local b1 = string.byte(text, 1)&lt;br /&gt;
		if (b1 ~= 39) and (b1 ~= 91) then&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local prefix = string.sub(text, 1, 7)&lt;br /&gt;
		if prefix == &amp;quot;[[File:&amp;quot; then&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		return (string.sub(prefix, 1, 2) == &amp;quot;[[&amp;quot;) or (string.sub(prefix, 1, 4) == &amp;quot;&amp;#039;&amp;#039;[[&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local lang = mw.getContentLanguage()&lt;br /&gt;
	&lt;br /&gt;
	function showcounter(counter)&lt;br /&gt;
		local number = lang:formatNum(counter)&lt;br /&gt;
		return &amp;quot;&amp;lt;small&amp;gt;(&amp;quot;..number..&amp;quot; articles)&amp;lt;/small&amp;gt;\n&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local lines = mw.text.split(fullText, &amp;quot;\n&amp;quot;, true)&lt;br /&gt;
	local counter = 0&lt;br /&gt;
	local result = {}&lt;br /&gt;
	for i, line in ipairs(lines) do&lt;br /&gt;
		if os.clock() &amp;gt; 30 then&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if testlink(line) then&lt;br /&gt;
			table.insert(result, line)&lt;br /&gt;
			counter = counter + 1&lt;br /&gt;
		else&lt;br /&gt;
			if counter &amp;gt; 1 then&lt;br /&gt;
				table.insert(result, showcounter(counter))&lt;br /&gt;
			end&lt;br /&gt;
			counter = 0&lt;br /&gt;
			table.insert(result, line)&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(result, &amp;quot;\n&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if counter &amp;gt; 1 then&lt;br /&gt;
		table.insert(result, showcounter(counter))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(result, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local easter = require(&amp;quot;Module:Easter&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local function prepareDateFormatter(format)&lt;br /&gt;
    if not format then&lt;br /&gt;
        local convertToRoman = { [&amp;quot;03&amp;quot;] = &amp;quot;III&amp;quot;, [&amp;quot;04&amp;quot;] = &amp;quot;IV&amp;quot;, [&amp;quot;05&amp;quot;] = &amp;quot;V&amp;quot;, }&lt;br /&gt;
        return function(date)&lt;br /&gt;
            local month = convertToRoman[string.sub(date,6,7)]&lt;br /&gt;
            local day = tonumber(string.sub(date,9))&lt;br /&gt;
            return day .. &amp;quot; &amp;quot; .. month&lt;br /&gt;
        end&lt;br /&gt;
    elseif format == &amp;quot;none&amp;quot; then&lt;br /&gt;
        return function(date)&lt;br /&gt;
            return date&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        local lang = mw.language.getContentLanguage()&lt;br /&gt;
        return function(date)&lt;br /&gt;
            return lang:formatDate(format, date)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.Table2(frame)&lt;br /&gt;
    local firstYear = tonumber(frame.args[1])&lt;br /&gt;
    local lastYear = tonumber(frame.args[2])&lt;br /&gt;
    local formatDate = prepareDateFormatter(frame.args.format)&lt;br /&gt;
    local result = {}&lt;br /&gt;
 &lt;br /&gt;
    table.insert(result, &amp;quot;&amp;lt;table class=\&amp;quot;wikitable\&amp;quot; style=\&amp;quot;text-align:center\&amp;quot;&amp;gt;&amp;quot;)&lt;br /&gt;
    --table.insert(result, &amp;quot;&amp;lt;thead&amp;gt;&amp;quot;)&lt;br /&gt;
    table.insert(result, &amp;quot;&amp;lt;tr&amp;gt;&amp;quot;)&lt;br /&gt;
    table.insert(result, &amp;quot;&amp;lt;th&amp;gt;Year&amp;lt;/th&amp;gt;&amp;lt;th colspan=\&amp;quot;2\&amp;quot;&amp;gt;...0&amp;lt;/th&amp;gt;&amp;lt;th colspan=\&amp;quot;2\&amp;quot;&amp;gt;...1&amp;lt;/th&amp;gt;&amp;lt;th colspan=\&amp;quot;2\&amp;quot;&amp;gt;...2&amp;lt;/th&amp;gt;&amp;lt;th colspan=\&amp;quot;2\&amp;quot;&amp;gt;...3&amp;lt;/th&amp;gt;&amp;lt;th colspan=\&amp;quot;2\&amp;quot;&amp;gt;...4&amp;lt;/th&amp;gt;&amp;lt;th colspan=\&amp;quot;2\&amp;quot;&amp;gt;...5&amp;lt;/th&amp;gt;&amp;lt;th colspan=\&amp;quot;2\&amp;quot;&amp;gt;...6&amp;lt;/th&amp;gt;&amp;lt;th colspan=\&amp;quot;2\&amp;quot;&amp;gt;...7&amp;lt;/th&amp;gt;&amp;lt;th colspan=\&amp;quot;2\&amp;quot;&amp;gt;...8&amp;lt;/th&amp;gt;&amp;lt;th colspan=\&amp;quot;2\&amp;quot;&amp;gt;...9&amp;lt;/th&amp;gt;&amp;quot;)&lt;br /&gt;
    table.insert(result, &amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;)&lt;br /&gt;
    table.insert(result, &amp;quot;&amp;lt;tr&amp;gt;&amp;quot;)&lt;br /&gt;
    table.insert(result, &amp;quot;&amp;lt;th&amp;gt;&amp;lt;small&amp;gt;decade&amp;lt;/small&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;W&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;E&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;W&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;E&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;W&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;E&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;W&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;E&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;W&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;E&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;W&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;E&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;W&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;E&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;W&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;E&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;W&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;E&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;W&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;E&amp;lt;/th&amp;gt;&amp;quot;)&lt;br /&gt;
    table.insert(result, &amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;)&lt;br /&gt;
    --table.insert(result, &amp;quot;&amp;lt;/thead&amp;gt;&amp;quot;)&lt;br /&gt;
    --table.insert(result, &amp;quot;&amp;lt;tbody&amp;gt;&amp;quot;)&lt;br /&gt;
    local firstDecade = math.floor(firstYear / 10)&lt;br /&gt;
    local lastDecade = math.floor(lastYear / 10)&lt;br /&gt;
    while firstDecade &amp;lt;= lastDecade do&lt;br /&gt;
        table.insert(result,&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;)&lt;br /&gt;
        table.insert(result,&amp;quot;&amp;lt;th&amp;gt;&amp;quot; .. firstDecade .. &amp;quot;...&amp;lt;/td&amp;gt;&amp;quot;)&lt;br /&gt;
        for i = 0, 9 do&lt;br /&gt;
            local y = (firstDecade * 10) + i&lt;br /&gt;
            if (y &amp;gt;= firstYear) and (y &amp;lt;= lastYear) then&lt;br /&gt;
                local v1 = easter.Calculate({ args = { [1] = y, method = &amp;quot;Western&amp;quot;, format = &amp;quot;none&amp;quot;, } })&lt;br /&gt;
                local v2 = easter.Calculate({ args = { [1] = y, method = &amp;quot;Eastern&amp;quot;, format = &amp;quot;none&amp;quot;, } })&lt;br /&gt;
                if v1 ~= v2 then&lt;br /&gt;
                    table.insert(result, &amp;quot;&amp;lt;td&amp;gt;&amp;quot; .. formatDate(v1) .. &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot; .. formatDate(v2) .. &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;)&lt;br /&gt;
                else&lt;br /&gt;
                    table.insert(result, &amp;quot;&amp;lt;td colspan=\&amp;quot;2\&amp;quot;&amp;gt;&amp;quot; .. formatDate(v1) .. &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;)&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                table.insert(result, &amp;quot;&amp;lt;td colspan=\&amp;quot;2\&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;quot;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        table.insert(result,&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;)&lt;br /&gt;
        firstDecade = firstDecade + 1&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    --table.insert(result, &amp;quot;&amp;lt;/tbody&amp;gt;&amp;quot;)&lt;br /&gt;
    table.insert(result, &amp;quot;&amp;lt;/table&amp;gt;&amp;quot;)&lt;br /&gt;
    return table.concat(result,&amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- look into entity object&lt;br /&gt;
function m.ViewSomething(frame)&lt;br /&gt;
	local f = (frame.args[1] or frame.args.id) and frame or frame:getParent()&lt;br /&gt;
	local data = mw.wikibase.getEntityObject(f.args.id)&lt;br /&gt;
	if not data then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i = 1&lt;br /&gt;
	while true do&lt;br /&gt;
		local index = f.args[i]&lt;br /&gt;
		if not index then&lt;br /&gt;
			if type(data) == &amp;quot;table&amp;quot; then&lt;br /&gt;
				return mw.text.jsonEncode(data, mw.text.JSON_PRESERVE_KEYS + mw.text.JSON_PRETTY)&lt;br /&gt;
			else&lt;br /&gt;
				return tostring(data)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		data = data[index] or data[tonumber(index)]&lt;br /&gt;
		if not data then&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local i18n = {&lt;br /&gt;
	[&amp;quot;warnDump&amp;quot;] = &amp;quot;[[Category:Called function &amp;#039;Dump&amp;#039; from module Wikidata]]&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function m.Dump(frame)&lt;br /&gt;
	local f = (frame.args[1] or frame.args.id) and frame or frame:getParent()&lt;br /&gt;
	local data = mw.wikibase.getEntityObject(f.args.id)&lt;br /&gt;
	if not data then&lt;br /&gt;
		return i18n.warnDump&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i = 1&lt;br /&gt;
	while true do&lt;br /&gt;
		local index = f.args[i]&lt;br /&gt;
		if not index then&lt;br /&gt;
			return &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;..mw.dumpObject(data)..&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;.. i18n.warnDump&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		data = data[index] or data[tonumber(index)]&lt;br /&gt;
		if not data then&lt;br /&gt;
			return i18n.warnDump&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return m&lt;/div&gt;</summary>
		<author><name>imported&gt;Paweł Ziemian</name></author>
	</entry>
</feed>