Модуль:Prototypes/Хранилище/Предмет: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 1: | Строка 1: | ||
local p = {} | local p = {} | ||
-- Функции как локальные переменные, которые будут привязаны позже | -- Функции как локальные переменные, которые будут привязаны позже | ||
local getContentsOutput, processNestedSelectors, getTableOutput, getContainedOutput, getChemOutput | local loadData, findDataById, formatContent, getContentsOutput, processNestedSelectors, getTableOutput, getContainedOutput, getChemOutput | ||
-- Функция для загрузки данных без кеширования | |||
loadData = function(filePath) | |||
local page = mw.title.new(filePath) | local page = mw.title.new(filePath) | ||
local content = page:getContent() | local content = page:getContent() | ||
return content and mw.text.jsonDecode(content) or nil | |||
end | end | ||
-- Поиск данных по ID | -- Поиск данных по ID | ||
findDataById = function(data, id) | |||
if not data then return nil end | if not data then return nil end | ||
for _, item in ipairs(data) do | for _, item in ipairs(data) do | ||
| Строка 37: | Строка 23: | ||
-- Форматирование одного содержимого | -- Форматирование одного содержимого | ||
formatContent = function(content) | |||
local name = string.format('{{#invoke:Entity Lookup|getname|%s}}', content.id) | local name = string.format('{{#invoke:Entity Lookup|getname|%s}}', content.id) | ||
local image = string.format('%s.png', content.id) | local image = string.format('%s.png', content.id) | ||
| Строка 79: | Строка 65: | ||
-- Обработка таблиц | -- Обработка таблиц | ||
getTableOutput = function(tableId) | getTableOutput = function(tableId) | ||
local allSelectors = loadData('User:IanComradeBot/prototypes/AllSelector.json | local allSelectors = loadData('User:IanComradeBot/prototypes/AllSelector.json') | ||
local tableData = findDataById(allSelectors, tableId) | local tableData = findDataById(allSelectors, tableId) | ||
local children = tableData and tableData['!type:AllSelector'] and tableData['!type:AllSelector'].children | local children = tableData and tableData['!type:AllSelector'] and tableData['!type:AllSelector'].children | ||