Модуль:Песочница/Pok: различия между версиями

Нет описания правки
Нет описания правки
Строка 1: Строка 1:
-- Загрузка данных
local data = mw.loadData("Модуль:Prototypes/Хранилище/Предмет/data")
local allSelectorData = mw.loadData("Модуль:Prototypes/Хранилище/Предмет/data2")
local p = {}
local p = {}


Строка 23: Строка 27:


-- Локальные функции
-- Локальные функции
local loadData, findDataById, formatContent, getContentsOutput, processNestedSelectors, getTableOutput, getContainedOutput, getChemOutput, handleGroupSelector, handleAllSelector, handleNestedSelector
local findDataById, formatContent, getContentsOutput, processNestedSelectors, getTableOutput, getContainedOutput, getChemOutput, handleGroupSelector, handleAllSelector, handleNestedSelector
 
-- Функция для загрузки данных (без кэширования)
loadData = function(filePath)
    local page = mw.title.new(filePath)
    local content = page:getContent()
    return content and mw.text.jsonDecode(content) or nil
end


-- Функция для создания хэш-таблицы для быстрого поиска по ID (без кэширования)
-- Функция для создания хэш-таблицы для быстрого поиска по ID
local function buildIndex(data)
local function buildIndex(data)
     if not data then return {} end
     if not data then return {} end
Строка 102: Строка 99:
-- Обработка таблиц
-- Обработка таблиц
getTableOutput = function(tableId)
getTableOutput = function(tableId)
    local allSelectors = loadData('User:IanComradeBot/prototypes/AllSelector.json')
     local tableData = findDataById(buildIndex(allSelectorData), tableId)
     local tableData = findDataById(buildIndex(allSelectors), tableId)


     if not tableData then return 'Таблица не найдена.' end
     if not tableData then return 'Таблица не найдена.' end
Строка 245: Строка 241:
     if not id then return 'Не указан ID.' end
     if not id then return 'Не указан ID.' end


    local data = loadData('User:IanComradeBot/prototypes/fills/Item.json')
     local dataIndex = buildIndex(data)
     local dataIndex = buildIndex(data)