Module

DYK

From Dogcraft Wiki

No edit summary
No edit summary
Line 25: Line 25:
i = 1
i = 1
result = ""
result = ""
resulttable = {}
for fact in string.gmatch(text, '%* %.%.%. .-?') do
for fact in string.gmatch(text, '%* %.%.%. .-?') do
Line 40: Line 41:
for i=1,count do
for i=1,count do
key = randomdaily(facts.getn, os.date("%d")*os.date("%m")*os.date("%y")*count)
key = randomdaily(facts.getn, os.date("%d")*os.date("%m")*os.date("%y")*count)
if (count == 1) then
resulttable[i] = facts[key]
result = facts[key]
else
result = result .. "\n" .. facts[key]
end
end
end
result = table.concat(resulttable, "\n", 1, count)
return result
return result

Revision as of 00:48, 7 March 2021

This module is responsible for the functionality of the Did you know? facts that appear on the main page. It does this by randomly pulling a number of facts from the content of the Dogcraft Wiki:Did you know/Facts page.

Functions:

random

The "random" function can generate up to 5 random numbers per day. Its arguments are "length", which sets the highest random number it can select (default is 30), and "seed", which can select between the 5 daily numbers. Seed accepts numbers from 1 to 5.
Examples:

  • {{#invoke:DYK|random|length=33|seed=1}} generates: 3 (this number changes daily)
  • {{#invoke:DYK|random|length=33|seed=2}} generates: 3 (this number changes daily)
  • {{#invoke:DYK|random|length=33|seed=3}} generates: 3 (this number changes daily)
  • {{#invoke:DYK|random|length=33|seed=4}} generates: 3 (this number changes daily)
  • {{#invoke:DYK|random|length=33|seed=5}} generates: 3 (this number changes daily)

randomW

The "randomW" function can generate up to 5 random numbers per week. Its arguments are "length", which sets the highest random number it can select (default is 30), and "seed", which can select between the 5 daily numbers. Seed accepts numbers from 1 to 5.
Examples:

  • {{#invoke:DYK|randomW|length=33|seed=1}} generates: Script error: The function "randomW" does not exist. (this number changes weekly)
  • {{#invoke:DYK|randomW|length=33|seed=2}} generates: Script error: The function "randomW" does not exist. (this number changes weekly)
  • {{#invoke:DYK|randomW|length=33|seed=3}} generates: Script error: The function "randomW" does not exist. (this number changes weekly)
  • {{#invoke:DYK|randomW|length=33|seed=4}} generates: Script error: The function "randomW" does not exist. (this number changes weekly)
  • {{#invoke:DYK|randomW|length=33|seed=5}} generates: Script error: The function "randomW" does not exist. (this number changes weekly)

facts

The "facts" function, which returns up to 5 facts per day, selected from Dogcraft_Wiki:Did_you_know. Its arguments are "text", which expects "{{Dogcraft_Wiki:Did_you_know/Facts}}" or a similarly layed out page, as the value, and "start" and "end", which determine which of the 5 facts to return.
Example: {{#invoke:DYK|facts|text={{Dogcraft_Wiki:Did_you_know/Facts}}|start=1|end=2}} generates:

Lua error at line 45: invalid value (nil) at index 1 in table for 'concat'.

(this changes daily)
local p = {} --p stands for package

function p.random( frame )
    if (frame.args[mode] == "multiply") then
    	seed = os.date("%d")*os.date("%m")*os.date("%y")
    else
    	seed = os.date("%d")+os.date("%m")+os.date("%y")
    end
    math.randomseed(seed)
	length = frame.args[lenght] or 30
	randnum = math.random(1,length)
    return randnum
end

function randomdaily( maxrandom, seed )
    math.randomseed(seed)
	length = maxrandom or 30
	randnum = math.random(1,length)
    return randnum
end

function p.facts( frame )
	text = frame.args[text] or ""
    facts = {}
	i = 1
	result = ""
	resulttable = {}
	
	for fact in string.gmatch(text, '%* %.%.%. .-?') do
		facts[i] = fact
		i = i + 1
	end
	
	count = 1
	count = tonumber(frame.args[count]) or 1
	if (count > 5) then
		count = 5
	elseif (count < 1) then
		count = 1
	end
	for i=1,count do
		key = randomdaily(facts.getn, os.date("%d")*os.date("%m")*os.date("%y")*count)
		resulttable[i] = facts[key]
	end
	result = table.concat(resulttable, "\n", 1, count)
	
	return result
end

return p
This page was last modified on 7 March 2021, at 00:48. (2 years ago)
Background Dragon Slayer - Retriever by Ironboundred