<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pttlink.org/index.php?action=history&amp;feed=atom&amp;title=Module%3ALoadData</id>
	<title>Module:LoadData - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pttlink.org/index.php?action=history&amp;feed=atom&amp;title=Module%3ALoadData"/>
	<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Module:LoadData&amp;action=history"/>
	<updated>2026-05-05T00:13:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Module:LoadData&amp;diff=5595&amp;oldid=prev</id>
		<title>Kg7qin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Module:LoadData&amp;diff=5595&amp;oldid=prev"/>
		<updated>2022-01-20T17:27:05Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:27, 20 January 2022&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key mediawiki:diff::1.12:old-5594:rev-5595 --&gt;
&lt;/table&gt;</summary>
		<author><name>Kg7qin</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Module:LoadData&amp;diff=5594&amp;oldid=prev</id>
		<title>Mediawiki&gt;MusikBot II: Protected &quot;Module:LoadData&quot;: High-risk template or module: 398 transclusions (more info) ([Edit=Require autoconfirmed or confirmed access] (indefinite))</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Module:LoadData&amp;diff=5594&amp;oldid=prev"/>
		<updated>2021-09-30T22:57:10Z</updated>

		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/wiki/Module:LoadData&quot; title=&quot;Module:LoadData&quot;&gt;Module:LoadData&lt;/a&gt;&amp;quot;: &lt;a href=&quot;https://en.wikipedia.org/wiki/High-risk_templates&quot; class=&quot;extiw&quot; title=&quot;wikipedia:High-risk templates&quot;&gt;High-risk template or module&lt;/a&gt;: 398 transclusions (&lt;a href=&quot;/index.php?title=User:MusikBot_II/TemplateProtector&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:MusikBot II/TemplateProtector (page does not exist)&quot;&gt;more info&lt;/a&gt;) ([Edit=Require autoconfirmed or confirmed access] (indefinite))&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;
-- Finds the next key key &amp;lt;= or &amp;gt;= the given i.&lt;br /&gt;
-- operator is ±1&lt;br /&gt;
local function findItemRange(data, i, operator)&lt;br /&gt;
    local bestIndex = nil&lt;br /&gt;
    i = i * operator&lt;br /&gt;
    for k, v in pairs(data) do&lt;br /&gt;
    	local kop = type(k) == 'number' and k * operator&lt;br /&gt;
        if kop and kop &amp;lt;= i and (bestIndex == nil or kop &amp;gt; bestIndex * operator) then&lt;br /&gt;
        	bestIndex = k&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    if bestIndex then return data[bestIndex] else return nil end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function load(datamodule, frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
    local data = mw.loadData(datamodule)&lt;br /&gt;
    for i = 1, 20 do&lt;br /&gt;
        if args[i] then data = data[tonumber(args[i]) or args[i]]&lt;br /&gt;
        elseif args[i .. ' lteq'] then&lt;br /&gt;
            data = findItemRange(data, tonumber(args[i .. ' lteq']), 1)&lt;br /&gt;
        elseif args[i .. ' gteq'] then&lt;br /&gt;
            data = findItemRange(data, tonumber(args[i .. ' gteq']), -1)&lt;br /&gt;
        else break end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if data == nil then&lt;br /&gt;
    	return args['if_nil'] -- not a required argument, OK to return nil here.&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if type(data) == 'table' then&lt;br /&gt;
    	-- Put the table into another table because the return value of loadData&lt;br /&gt;
    	-- is a &amp;quot;fake&amp;quot; table that only has certain metamethods.&lt;br /&gt;
    	local realdata = {}&lt;br /&gt;
    	for k, v in pairs(data) do&lt;br /&gt;
    		realdata[k] = v&lt;br /&gt;
    	end&lt;br /&gt;
    	data = realdata&lt;br /&gt;
    else&lt;br /&gt;
    	data = { data }&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if args['template'] then&lt;br /&gt;
    	return mw.text.unstripNoWiki(args['template']):format(unpack(data))&lt;br /&gt;
    elseif args['preprocess'] then&lt;br /&gt;
    	return frame:preprocess(mw.text.unstripNoWiki(args['preprocess']):format(unpack(data)))&lt;br /&gt;
    else&lt;br /&gt;
    	return table.concat(data)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return setmetatable({}, {&lt;br /&gt;
	__index = function(t, k)&lt;br /&gt;
		return function(frame)&lt;br /&gt;
			return load('Module:' .. k, frame)&lt;br /&gt;
    	end&lt;br /&gt;
	end&lt;br /&gt;
})&lt;/div&gt;</summary>
		<author><name>Mediawiki&gt;MusikBot II</name></author>
	</entry>
</feed>