<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Module%3A%E6%B2%99%E7%9B%92%2Fa2569875%2FDataReadTest</id>
	<title>Module:沙盒/a2569875/DataReadTest - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Module%3A%E6%B2%99%E7%9B%92%2Fa2569875%2FDataReadTest"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:%E6%B2%99%E7%9B%92/a2569875/DataReadTest&amp;action=history"/>
	<updated>2026-07-15T09:13:28Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Module:%E6%B2%99%E7%9B%92/a2569875/DataReadTest&amp;diff=3367720&amp;oldid=prev</id>
		<title>imported&gt;A2569875 来自 2020年2月13日 (四) 10:56</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:%E6%B2%99%E7%9B%92/a2569875/DataReadTest&amp;diff=3367720&amp;oldid=prev"/>
		<updated>2020-02-13T10:56:51Z</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;local p={}&lt;br /&gt;
local lib_arg = {}&lt;br /&gt;
local yesno = {}&lt;br /&gt;
function p.getWikitextTimes(frame)&lt;br /&gt;
	local args, working_frame&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        -- We&amp;#039;re being called via #invoke. The args are passed through to the module&lt;br /&gt;
        -- from the template page, so use the args that were passed into the template.&lt;br /&gt;
        if lib_arg.getArgs == nil then lib_arg = require(&amp;#039;Module:Arguments&amp;#039;) end&lt;br /&gt;
        args = lib_arg.getArgs(frame, {parentFirst=true})&lt;br /&gt;
        working_frame = frame&lt;br /&gt;
    else&lt;br /&gt;
        -- We&amp;#039;re being called from another module or from the debug console, so assume&lt;br /&gt;
        -- the args are passed in directly.&lt;br /&gt;
        args = frame&lt;br /&gt;
        working_frame = mw.getCurrentFrame()&lt;br /&gt;
        if type(args) ~= type({}) then args = {frame} end&lt;br /&gt;
    end&lt;br /&gt;
    local input_title = args[1] or args[&amp;#039;1&amp;#039;]&lt;br /&gt;
    local input_arg = args[2] or args[&amp;#039;2&amp;#039;]&lt;br /&gt;
    local Times = tonumber(args.Times) or 1&lt;br /&gt;
    local body = &amp;#039;&amp;#039;&lt;br /&gt;
    for testtime = 1,Times do&lt;br /&gt;
    	body = body .. &amp;#039;\n*{{&amp;#039; .. input_title .. &amp;#039;|&amp;#039; .. input_arg .. &amp;#039;}}&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    return working_frame:preprocess(body)&lt;br /&gt;
end&lt;br /&gt;
function p.getJSONTimes(frame)&lt;br /&gt;
	local args, working_frame&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        -- We&amp;#039;re being called via #invoke. The args are passed through to the module&lt;br /&gt;
        -- from the template page, so use the args that were passed into the template.&lt;br /&gt;
        if lib_arg.getArgs == nil then lib_arg = require(&amp;#039;Module:Arguments&amp;#039;) end&lt;br /&gt;
        args = lib_arg.getArgs(frame, {parentFirst=true})&lt;br /&gt;
        working_frame = frame&lt;br /&gt;
    else&lt;br /&gt;
        -- We&amp;#039;re being called from another module or from the debug console, so assume&lt;br /&gt;
        -- the args are passed in directly.&lt;br /&gt;
        args = frame&lt;br /&gt;
        working_frame = mw.getCurrentFrame()&lt;br /&gt;
        if type(args) ~= type({}) then args = {frame} end&lt;br /&gt;
    end&lt;br /&gt;
    local input_title = args[1] or args[&amp;#039;1&amp;#039;]&lt;br /&gt;
    local Times = tonumber(args.Times) or 1&lt;br /&gt;
    local key_alias = args[&amp;#039;key alias&amp;#039;] or args.key_alias&lt;br /&gt;
    if (key_alias or &amp;#039;&amp;#039;) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		if type(yesno) ~= type(tonumber) then yesno = require(&amp;#039;Module:Yesno&amp;#039;) end&lt;br /&gt;
		key_alias = yesno(key_alias or &amp;#039;no&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
    local default = args[&amp;quot;default&amp;quot;] or &amp;#039;&amp;#039;&lt;br /&gt;
    local fullText = mw.title.new( input_title, &amp;quot;Template&amp;quot; ):getContent()&lt;br /&gt;
    local jsonText = &amp;#039;&amp;#039;&lt;br /&gt;
    if fullText then&lt;br /&gt;
    	local checker, begin = mw.ustring.find(fullText, &amp;quot;&amp;lt;%s*source%s*lang%s*=%s*[&amp;#039;\&amp;quot;]?[Jj][Ss][Oo][Nn][&amp;#039;\&amp;quot;]?%s*&amp;gt;&amp;quot;)&lt;br /&gt;
    	local finish, __noop = mw.ustring.find(fullText, &amp;quot;&amp;lt;%s*/%s*source[^&amp;gt;]*&amp;gt;&amp;quot;)&lt;br /&gt;
    	if checker then&lt;br /&gt;
    		jsonText = mw.ustring.sub(fullText,begin+1,finish-1)&lt;br /&gt;
    	end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
	local body = &amp;#039;&amp;#039;&lt;br /&gt;
	for testtime = 1,Times do&lt;br /&gt;
&lt;br /&gt;
    local JSONobj = mw.text.jsonDecode( jsonText )&lt;br /&gt;
    local iterator = 2&lt;br /&gt;
	while args[iterator] ~= nil do&lt;br /&gt;
		if key_alias then&lt;br /&gt;
			local check_key = JSONobj[args[iterator]]&lt;br /&gt;
			if type(check_key) == type(&amp;quot;string&amp;quot;) then&lt;br /&gt;
				local check_key_str, find_key_str = mw.ustring.gsub(check_key,&amp;quot;&amp;lt;%s*target%s*&amp;gt;(.-)&amp;lt;%s*/%s*target%s*&amp;gt;&amp;quot;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
				mw.log(args[iterator] .. &amp;#039;, find:&amp;#039; .. check_key_str)&lt;br /&gt;
				while find_key_str &amp;gt; 0 and mw.text.trim(check_key_str) ~= &amp;#039;&amp;#039; and JSONobj[check_key_str] ~= nil do&lt;br /&gt;
					check_key = JSONobj[check_key_str]&lt;br /&gt;
					if type(check_key) == type(&amp;quot;string&amp;quot;) then&lt;br /&gt;
						check_key_str, find_key_str = mw.ustring.gsub(check_key,&amp;quot;&amp;lt;%starget%s&amp;gt;(.-)&amp;lt;%s/%starget%s&amp;gt;&amp;quot;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
						mw.log(&amp;#039;   =&amp;gt;\&amp;quot;&amp;#039; .. check_key_str .. &amp;#039;\&amp;quot;&amp;#039;)&lt;br /&gt;
					else break end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			JSONobj = check_key&lt;br /&gt;
		else JSONobj = JSONobj[args[iterator]] end&lt;br /&gt;
		if JSONobj == nil and default ~= nil then&lt;br /&gt;
			body = body .. &amp;#039;\n*&amp;#039; ..  default&lt;br /&gt;
		end&lt;br /&gt;
		iterator = iterator + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if type(JSONobj) == type({}) then&lt;br /&gt;
		body = body .. &amp;#039;\n*&amp;#039; ..  default&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	body = body .. &amp;#039;\n*&amp;#039; .. JSONobj&lt;br /&gt;
	&lt;br /&gt;
	end&lt;br /&gt;
	return body&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;A2569875</name></author>
	</entry>
</feed>