Модуль:RandomPageFromCategory

Материал из Поле цифровой дидактики

-- Module:RandomPageFromCategory
local p = {}

local function pick(list)
  if #list == 0 then
    return nil
  end
  math.randomseed(os.time())
  return list[math.random(#list)]
end

function p.fromCategory(frame)
  local cat = frame.args[1] or "Book"
  return "[[Special:RandomInCategory/" .. cat .. "|случайная страница из " .. cat .. "]]"
end

function p.fromList(frame)
  local items = {}
  local i = 1
  while frame.args[i] do
    table.insert(items, frame.args[i])
    i = i + 1
  end

  local page = pick(items)
  if not page then
    return "Нет страниц в списке"
  end

  return page
end

return p