Zum Inhalt springen

Modul:Spielwiese/Antonsusi

aus Wikipedia, der freien Enzyklopädie

Die Dokumentation für dieses Modul kann unter Modul:Spielwiese/Antonsusi/Doku erstellt werden

local p = {}

-- Funktionen von Benutzer Antonsusi
--Aufruf:  {{#invoke:Spielwiese/Antonsusi|getjson|1=<SPKID>}}
function p.getjson(frame)
	local lucky, json ={}
	local object =  frame.args[1] or "SPKID20000000";
	local text = ""
	local myfield=""
	local myvalue=""
	local values={}
	local allvalues = ""
	lucky, json = pcall( mw.loadJsonData, 'Benutzer:Antonsusi/Daten.json' )
	if type(json) == "string" then
		text = "lucky=".. tostring(lucky) .."<br/> json=" .. json;
		return  text
	end
	if type(json) == "table" then
		local tbl = json["data"][object]
		local Felder = json["fields"]
		text = text .. "{{Benutzer:Antonsusi/Infobox TNO\n"
		for i, v in ipairs(Felder) do
			myfield =  tostring(Felder[i]) or "???"
			if type(tbl[i]) ~= nil then
				myvalue =  tostring(tbl[i]) or "???"
				values[v] = tostring(tbl[i]);
			else
				myvalue =  "null"
				values[v] = "null"
			end
			text = text .. '| ' .. myfield .. ' = ' .. myvalue .. "\n"
		end
		text = text .. "}} \n"
		return text;
--[=[		
		if type(values) == "table" then
			allvalues =table.concat(values,"\n")
		else
			return "values not a table!"
		end
		if type(allvalues) ~= nil then
			return allvalues
		else
			return "No allvalues!"
		end
]=]
	else
		text = "json is not a table\n"
		return text;
	end
	return "Oops!"
end

--  ----------------------------------------------

-- Teilen einer Zeichenkette an enthaltenen Zeilenumbrüchen, entspricht mw.text.split()
local function GetLines(str)
	local tbl = {};
	local text = str;
	local teil;
	sep = '\n';
	if #str == 0 then
		return tbl;
	end
	text = text ..sep
	for i = 1,32767 do   -- while vermeiden, damit sich das im Testbetrieb nicht aufhängen kann, 32767 Zeilen sollten reichen.
		pos = string.find(text,sep) or 0;
		teil = string.sub(text,1,pos-1);
		if pos < 1 then
			break;
		end
		table.insert (tbl,teil);
		text = string.sub(text,pos+1);
	end
	return tbl;
end


-- GetPage liest den Quelltext einer Seite aus und speichert die Zeilen in einer table.
-- Aufruf durch {{#invoke:Spielwiese/Antonsusi|GetPage|<namespace>|<pagename>}}
function p.GetPage(frame)
	local namespace = frame.args[1];
	local title = frame.args[2];
	local Seite = mw.title.makeTitle( namespace, title);
	local Content = Seite:getContent()
	local Lines = {};
	local c = 0;
	Text = mw.ustring.sub( Content, 1, 10000); -- Begrenzung 
	Lines = mw.text.split( Content, "%s*\n" );
	-- hier liegen die Zeilen als table vor. Es folgt testweise eine "Dummy-Ausgabe"
	for i = 1,#Lines do
		Lines[i] = 	Lines[i] ..'\n';
	end
	local Info = table.concat(Lines)
	return Info;
end
-- GetPage liest den Quelltext einer Seite aus und speichert die Zeilen in einer table.
-- Aufruf durch {{#invoke:Spielwiese/Antonsusi|GetPage|<namespace>|<pagename>}}
function p.GetPageEasy(frame)
	local namespace = frame.args[1];
	local title = frame.args[2];
	local Seite = mw.title.makeTitle( namespace, title);
	local Content = Seite:getContent()

	Text = "<pre>" .. Content .."</pre>"
	return Text;
end

return p