Module:DYK: Difference between revisions

From Blooncyclopedia, the independent Bloons knowledge base
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(2 intermediate revisions by the same user not shown)
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
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
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