62 lines
1.4 KiB
Text
62 lines
1.4 KiB
Text
local p = {}
|
|
local facts = require("Module:DidYouKnow/facts")
|
|
|
|
local function formatFact(factText)
|
|
return "* ... that " .. factText .. "?"
|
|
end
|
|
|
|
function p.getFacts()
|
|
local s = ""
|
|
local length = #facts.facts
|
|
-- Different random seed every day (displays the same set of facts for a day, then a different set the next day, etc.)
|
|
math.randomseed(math.floor(os.time()/(60*60*24))*2) -- *2 so that we will have a different set of facts compared to Fandom
|
|
|
|
-- Ensure duplicate facts are not displayed
|
|
local chosen = {}
|
|
while #chosen < 8 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
|
|
|
|
-- Now we actually get to write the output.
|
|
local result = {}
|
|
for i, v in ipairs(chosen) do
|
|
result[i] = formatFact(facts.facts[v])
|
|
end
|
|
return table.concat(result, "\n")
|
|
end
|
|
|
|
local function formatFactList(factTable)
|
|
local facts = factTable.facts
|
|
local length = #facts
|
|
local result = {}
|
|
|
|
for i = 1, length do
|
|
result[i] = formatFact(facts[i])
|
|
end
|
|
|
|
return table.concat(result, "\n")
|
|
end
|
|
|
|
-- List all facts. Intended to allow easier debugging.
|
|
function p.listAllFacts()
|
|
return formatFactList(facts)
|
|
end
|
|
|
|
function p.listEditcopyFacts()
|
|
local editcopyFacts = require("Module:DidYouKnow/facts/editcopy")
|
|
return formatFactList(editcopyFacts)
|
|
end
|
|
|
|
return p
|