Модуль:Prototypes/Механика/Доступ: различия между версиями

мНет описания правки
Нет описания правки
Строка 40: Строка 40:
}
}


-- Основная функция модуля
function p.parse(frame)
function p.parse(frame)
    -- Получение входных данных
     local id = frame.args[1]
     local input = frame.args[1]
     if not id then
     if not input then
         return "Нет данных для обработки"
         return "Нет данных для обработки"
     end
     end
 
   
     -- Преобразование строки в таблицу Lua
     -- Загрузка данные доступа
     local success, data = pcall(mw.text.jsonDecode, input)
     local accessData = mw.title.new("User:IanComradeBot/prototypes/AccessReader/access.json"):getContent()
     if not success or type(data) ~= "table" then
     if not accessData then
         return "Ошибка: некорректный формат входных данных"
         return "Ошибка: не удалось загрузить данные доступа"
     end
     end
 
   
     -- Список для хранения переведённых значений
     local success, jsonData = pcall(mw.text.jsonDecode, accessData)
     local result = {}
     if not success or type(jsonData) ~= "table" then
     for _, item in ipairs(data) do
        return "Ошибка: некорректный формат данных доступа"
         if type(item) == "table" and item[1] then
    end
             -- Замена ID доступов на их название
   
             local translated = translations[item[1]] or item[1]
     for _, item in ipairs(jsonData) do
             table.insert(result, translated)
         if item.id == id and item.AccessReader and item.AccessReader.access then
             local result = {}
             for _, accessList in ipairs(item.AccessReader.access) do
                for _, access in ipairs(accessList) do
                    table.insert(result, translations[access] or access)
                end
            end
             return table.concat(result, ", ") .. "."
         end
         end
     end
     end
 
      
     -- Объединение переведённых элементов через запятую
     return "Ошибка: ID не найден в данных доступа"
     return table.concat(result, ", ") .. "."
end
end


return p
return p