Модуль:GetField: различия между версиями
Pok (обсуждение | вклад) Нет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 81: | Строка 81: | ||
local function to_nowiki(v) | local function to_nowiki(v) | ||
return "<nowiki>" .. v .. "</nowiki>" | |||
return "<nowiki>" .. | |||
end | end | ||
| Строка 258: | Строка 257: | ||
local parts = {} | local parts = {} | ||
local function append_table_json(key, value) | |||
local ok, json = pcall(mw.text.jsonEncode, value) | |||
if ok and json then | |||
parts[#parts + 1] = key .. "=" .. to_nowiki(json) | |||
end | |||
end | |||
local function walk(tbl, prefix) | local function walk(tbl, prefix) | ||
local keys = {} | local keys = {} | ||
| Строка 264: | Строка 270: | ||
for _, k in ipairs(keys) do | for _, k in ipairs(keys) do | ||
local v = tbl[k] | local v = tbl[k] | ||
local key = (prefix == "" and | local kStr = tostring(k) | ||
local key = (prefix == "" and kStr or prefix .. "." .. kStr) | |||
if type(v) == "table" then | if type(v) == "table" then | ||
if next(v) == nil then | if next(v) == nil then | ||
else | else | ||
append_table_json(key, v) | |||
if | if not is_array(v) then | ||
walk(v, key) | |||
end | end | ||
end | end | ||
else | else | ||
| Строка 472: | Строка 473: | ||
end | end | ||
local target = tostring(compName) | |||
for _, v in ipairs(entry) do | for _, v in ipairs(entry) do | ||
if tostring(v) == | if tostring(v) == target then | ||
return "true" | return "true" | ||
end | end | ||