Modul:Queries: Unterschied zwischen den Versionen

ask anstelle getQueryResult
(Aufteilung GetValues/getValues)
(ask anstelle getQueryResult)
Zeile 1: Zeile 1:
local p = {}
local p = {}
local c = require("Module:Common")


function p.GetValues(frame)
function p.GetValues(frame)
Zeile 5: Zeile 6:
local page = frame.args["page"] or ""
local page = frame.args["page"] or ""
local attr = frame.args["attr"] or ""
local attr = frame.args["attr"] or ""
local sep = frame.args["sep"]
local sep = frame.args["sep"] or ";"
local debug = frame.args["debug"] or false
 
local values = p.getValues(page, attr, debug)
local t = ""
if values ~= nil then
for i = 1, #values do
    t = t .. values[i]
    if i ~= #values then
    t = t .. sep
    end
end
end
 
if debug or false then
mw.log("")
mw.log("GetValues(frame)=" .. t)
end
return p.getValues(page, attr, sep)
return t
end
end


function p.getValues(page, attr, sep)
function p.getValues(page, attr, debug)
local sepl = sep or ";"
local askResult = mw.smw.ask("[[:" .. page .."]]|?#-=page|?" .. attr .."#-=" .. attr .. "|mainlabel=-|limit=1") -- ask selektiert nur die Seite selbst
local result = mw.smw.getQueryResult("[["..page.."]] |?"..attr)
-- If no results, return just nil
local values = nil
if #result.results == 0 then
if askResult ~= nil then
return
values = askResult[1][attr] -- Erste Ergebis-Zeile, attr-Spalte
end
end
 
local values = result.results[1].printouts[attr]
if debug or false then
local t = ""
mw.log("")
for i = 1, #values do
mw.log("getValues(" .. page .. "," .. attr .. ")=")
    t = t .. values[i]["fulltext"]
mw.logObject(values)
    if i ~= #values then
      t = t .. sepl .. " "
    end
end
end
return t
 
return values
end
end


return p
return p