Модуль:Meta Sprite: различия между версиями
Материал из Space Station 14 | Время приключений Вики
Дополнительные действия
|  Новая страница: «-- Загрузка данных local data = mw.loadData("Модуль:WikiBotADT/meta sprite.json/data")  local p = {}  -- Функция для разделения строки по разделителю local function split(str, delimiter)     local result = {}     for token in string.gmatch(str, "([^" .. delimiter .. "]+)") do         table.insert(result, token)     end     return result end  function p.main(frame)     local mode = frame.args[1] -- Р...» | Нет описания правки | ||
| Строка 1: | Строка 1: | ||
| --[[  | |||
| Содержимое статьи является полностью или частично заимствованным текстом | |||
| Источник: проект Corvax Station — Модуль:Meta Sprite | |||
| Содержимое доступно по лицензии: CC BY-NC-SA 4.0 | |||
| ]] | |||
| -- Загрузка данных | -- Загрузка данных | ||
| local data = mw.loadData("Модуль:WikiBotADT/meta sprite.json/data") | local data = mw.loadData("Модуль:WikiBotADT/meta sprite.json/data") | ||
Текущая версия от 18:48, 24 марта 2025
Для документации этого модуля может быть создана страница Модуль:Meta Sprite/doc
--[[ 
Содержимое статьи является полностью или частично заимствованным текстом
Источник: проект Corvax Station — Модуль:Meta Sprite
Содержимое доступно по лицензии: CC BY-NC-SA 4.0
]]
-- Загрузка данных
local data = mw.loadData("Модуль:WikiBotADT/meta sprite.json/data")
local p = {}
-- Функция для разделения строки по разделителю
local function split(str, delimiter)
    local result = {}
    for token in string.gmatch(str, "([^" .. delimiter .. "]+)") do
        table.insert(result, token)
    end
    return result
end
function p.main(frame)
    local mode = frame.args[1] -- Режим
    local filePath = require('Module:FilePath')
    local path = filePath.getOthersPath({ args = { frame.args[2] } }) -- Путь
    if not mode or not path then
        return "Ошибка: необходимо указать режим и путь."
    end
    -- Поиск точного совпадение
    local entry = data[path]
    -- Если не найдено, ищем по последним трём сегментам пути
    if not entry then
        local segments = split(path, "/")
        local count = #segments
        local suffix
        if count >= 3 then
            suffix = table.concat({ segments[count-2], segments[count-1], segments[count] }, "/")
        else
            suffix = path
        end
        -- Ищем среди всех ключей, заканчивающихся на полученный суффикс
        for key, value in pairs(data) do
            if key:sub(-#suffix) == suffix then
                entry = value
                break
            end
        end
        if not entry then
            return ""
        end
    end
    local result = entry[mode]
    if not result then
        return "Ошибка: указанный режим не найден в данных."
    end
    return result
end
return p
