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