Module:DYK: Difference between revisions

From Blooncyclopedia, the independent Bloons knowledge base
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
Line 13: Line 13:
while #ret < tonumber(frame.args[1]) do
while #ret < tonumber(frame.args[1]) do
local my_fact = facts[mrandom(1, facts_len)]
local my_fact = sformat("*...that %s?", facts[mrandom(1, facts_len)])
local do_insert = true
local do_insert = true
for i, v in ipairs(ret) do
for i, v in ipairs(ret) do
mw.log(v)
mw.log(my_fact)
if v == my_fact then
if v == my_fact then
do_insert = false
do_insert = false
Line 24: Line 26:
if do_insert then
if do_insert then
tinsert(ret, sformat("*...that %s?", my_fact))
tinsert(ret, my_fact)
end
end
end
end

Latest revision as of 04:07, 19 September 2024

Documentation for this module may be created at Module:DYK/doc

local p = {}
local facts = mw.loadJsonData("module:DYK/list")["facts"]

function p.subset(frame)
	local ret = {}
	local facts_len = 0
	for i in ipairs(facts) do facts_len = facts_len + 1 end
	math.randomseed(math.floor(os.time()/(60*60*24)))
	
	local tinsert = table.insert
	local mrandom = math.random
	local sformat = string.format
	
	while #ret < tonumber(frame.args[1]) do
		local my_fact = sformat("*...that %s?", facts[mrandom(1, facts_len)])
		local do_insert = true
		
		for i, v in ipairs(ret) do
			mw.log(v)
			mw.log(my_fact)
			if v == my_fact then
				do_insert = false
				break
			end
		end
		
		if do_insert then
			tinsert(ret, my_fact)
		end
	end
	
	return table.concat(ret, "\n")
end

function p.full()
	local ret = {}
	
	local tinsert = table.insert
	local sformat = string.format
	
	for i, v in ipairs(facts) do
		tinsert(ret, sformat("*...that %s?", v))
	end
	
	return table.concat(ret, "\n")
end

return p