Module:Lua json: Difference between revisions
Jump to navigation
Jump to search
No edit summary Tag: Reverted |
No edit summary Tag: Reverted |
||
Line 1: | Line 1: | ||
local p = | local p = {} | ||
local json = require( | local json = require("Module:Json") | ||
-- Funktion zum Durchsuchen der Seiten nach dem angegebenen Titelwert | |||
local | function p.getDataByTitle(titleParam, titleValue, targetParam) | ||
local pages = mw.title.new('Special:PrefixIndex/Data:' .. titleValue) | |||
if | -- Überprüfen, ob die Seiten existieren und durchsuchbar sind | ||
if pages and pages.exists then | |||
local results = {} | |||
-- Iteration über die Seiten | |||
for _, page in ipairs(mw.ext.pageinfo.getPagesInCategory(pages.prefixedText)) do | |||
local content = mw.title.new(page.fullText) | |||
-- Überprüfen, ob die Seite existiert und das Content-Model JSON ist | |||
if content and content.exists and content.contentModel == "json" then | |||
local data = mw.text.jsonDecode(content:getContent()) | |||
-- Überprüfen, ob der angegebene Parameter existiert und den richtigen Wert hat | |||
if data and data[titleParam] == titleValue then | |||
table.insert(results, data[targetParam]) | |||
end | |||
end | end | ||
end | end | ||
-- Rückgabe der Ergebnisse | |||
return results | |||
else | |||
-- Wenn die Seiten nicht existieren oder nicht durchsuchbar sind, wird ein Fehler ausgegeben | |||
return "Error: Unable to find pages with the given prefix" | |||
end | end | ||
end | end | ||
return p | return p |
Revision as of 16:08, 16 March 2024
Documentation for this module may be created at Module:Lua json/doc
local p = {}
local json = require("Module:Json")
-- Funktion zum Durchsuchen der Seiten nach dem angegebenen Titelwert
function p.getDataByTitle(titleParam, titleValue, targetParam)
local pages = mw.title.new('Special:PrefixIndex/Data:' .. titleValue)
-- Überprüfen, ob die Seiten existieren und durchsuchbar sind
if pages and pages.exists then
local results = {}
-- Iteration über die Seiten
for _, page in ipairs(mw.ext.pageinfo.getPagesInCategory(pages.prefixedText)) do
local content = mw.title.new(page.fullText)
-- Überprüfen, ob die Seite existiert und das Content-Model JSON ist
if content and content.exists and content.contentModel == "json" then
local data = mw.text.jsonDecode(content:getContent())
-- Überprüfen, ob der angegebene Parameter existiert und den richtigen Wert hat
if data and data[titleParam] == titleValue then
table.insert(results, data[targetParam])
end
end
end
-- Rückgabe der Ergebnisse
return results
else
-- Wenn die Seiten nicht existieren oder nicht durchsuchbar sind, wird ein Fehler ausgegeben
return "Error: Unable to find pages with the given prefix"
end
end
return p