Modul:Queries: Unterschied zwischen den Versionen

Kleinkram
(query anstelle queryl)
(Kleinkram)
Zeile 1: Zeile 1:
local p = {}
local p = {}
local c = require("Module:Common")
local com = require("Module:Common")
local s = require("Module:String")


function p.GetValues(frame)
function p.GetValues(frame)
-- Gets the values from an attribute on a page to be called from Wikitext by #invoke
-- Gets the values from an attribute on a page to be called from Wikitext by #invoke
-- mw.log("GetValues(frame)")
-- mw.logObject(frame)
local page = frame.args.page or ""
local page = frame.args.page or ""
local attr = frame.args.attr or ""
local attr = frame.args.attr or ""
Zeile 11: Zeile 12:


local values = p.getValues(page, attr, plain)
local values = p.getValues(page, attr, plain)
local vallist = s.list(values, sep)
local vallist = table.concat(values, sep)
-- mw.log("GetValues(frame)=" .. vallist)
-- mw.logObject(vallist)
-- mw.log("frame=")
-- mw.logObject(frame)
return vallist
return vallist
end
end
Zeile 20: Zeile 19:
function p.getValues(page, attr, plain)
function p.getValues(page, attr, plain)
-- Gets the values from an attribute on a page to be called inside lua
-- Gets the values from an attribute on a page to be called inside lua
-- mw.log("getValues(" .. page .. ", " ..  attr .. ", " ..  tostring(plain) .. ")")
local query = "[[:" .. page .."]]|?" .. attr -- selektiert nur die Seite selbst
local query = "[[:" .. page .."]]|?" .. attr -- selektiert nur die Seite selbst
if plain then
if plain then
Zeile 28: Zeile 28:
local askResult = mw.smw.ask(query)
local askResult = mw.smw.ask(query)
local values = {}
local values = {}
if not c.isEmpty(askResult) then
if not com.isEmpty(askResult) then
values = askResult[1][attr] -- Erste Ergebnis-Zeile, attr-Spalte
values = askResult[1][attr] -- Erste Ergebnis-Zeile, attr-Spalte
if type(values) ~= "table" then -- Immer als table rückgeben, auch wenn keine (dann umformen)
if type(values) ~= "table" then -- Immer als table rückgeben, auch wenn keine (dann umformen)
Zeile 34: Zeile 34:
end
end
end
end
-- mw.log("getValues(" .. page .. "," ..  attr .. ")=")
-- mw.logObject(values)
-- mw.log("query=" .. query)
-- mw.log("askResult=")
-- mw.logObject(askResult)
-- mw.log("values=")
-- mw.logObject(values)
-- mw.logObject(values)
-- mw.log("type(values[1])=" .. type(values[1]))
return values
return values
end
end


function p.getPages(query, plain)
function p.getPages(query, plain)
-- mw.log("getPages(" .. query .. ", " ..  tostring(plain) .. ")")
if plain then
if plain then
query = query .. "|?#-"
query = query .. "|?#-"
Zeile 52: Zeile 46:


local askResult = mw.smw.ask(query)
local askResult = mw.smw.ask(query)
local table = {}
local values = {}
if not c.isEmpty(askResult) then
if not com.isEmpty(askResult) then
for i = 1, #askResult do
for _, v  in pairs(askResult) do
table[i] = askResult[i][1] -- i-te Zeile, 1. Spalte
table.insert(values, v[1]) -- jede Zeile, 1. Spalte
end
end
end
end
-- mw.log("getPages()=")
-- mw.logObject(values)
-- mw.logObject(table)
return values
-- mw.log("queryl=")
-- mw.logObject(queryl)
-- mw.log("askResult=")
-- mw.logObject(askResult)
return table
end
end


return p
return p