Код, необходимый для работы шаблона {{А вы знали}}. Все факты хранятся и могут быть добавлены на странице Модуль:А вы знали/Факты.
local p = {}
local facts = require("Модуль:А вы знали/Факты")
function p.getFacts()
local s = ""
local length = #facts.facts
-- Каждый день генерируется разное значение зерна (отображает один и тот же набор фактов в течение дня, затем другой набор на следующий день и т. д.).
math.randomseed(math.floor(os.time()/(60*60*24)))
-- Следует убедиться, что повторяющиеся факты не отображаются.
local chosen = {}
while #chosen < 5 do
local random = math.random(1, length)
local isPresent = false
for i, v in ipairs(chosen) do
if v == random then
isPresent = true
break
end
end
if not isPresent then
table.insert(chosen, random)
end
end
-- Теперь действительно можно написать вывод.
local result = {}
for i, v in ipairs(chosen) do
result[i] = "* ... что " .. facts.facts[v] .. "?"
end
return table.concat(result, "\n")
end
-- Список всех фактов. Предназначен для облегчения отладки.
function p.getAllFacts()
local result = {}
local length = #facts.facts
for i = 1, length do
result[i] = "* ... что " .. facts.facts[i] .. "?"
end
return table.concat(result, "\n")
end
return p