Modul:Spielwiese/Antonsusi
Erscheinungsbild
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