Module
DYK
From Dogcraft Wiki
No edit summary |
mNo edit summary |
||
Line 8: | Line 8: | ||
end | end | ||
function randomdaily( maxrandom ) | function randomdaily( maxrandom, seed ) | ||
math.randomseed( | math.randomseed(seed) | ||
length = maxrandom or 30 | |||
randnum = math.random(1,length) | |||
return | return randnum | ||
end | end | ||
function p. | function p.facts( frame ) | ||
text = frame.args[1] or "" | text = frame.args[1] or "" | ||
facts = {} | |||
i = 1 | i = 1 | ||
result = "" | |||
for | for fact in string.gmatch(text, '%* %.%.%. .-?') do | ||
facts[i] = fact | |||
i = i + 1 | i = i + 1 | ||
end | |||
if (frame.args[2] == 2) then | |||
key1 = randomdaily(facts.getn, os.date("%d")*os.date("%m")*os.date("%y")) | |||
key2 = randomdaily(facts.getn, os.date("%d")+os.date("%m")+os.date("%y")) | |||
result = facts[key1] .. "\n" .. facts[key2] | |||
else | |||
key = randomdaily(facts.getn, os.date("%d")*os.date("%m")*os.date("%y")) | |||
result = facts[key] | |||
end | end | ||
return result | |||
end | end | ||
return p | return p |
Revision as of 00:05, 7 March 2021
Home · Facts list · Fact submissions |
MainPage template · Module (docs, sandbox) · Criteria/Editnotice · Category page |
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:4
(this number changes daily){{#invoke:DYK|random|length=33|seed=2}}
generates:4
(this number changes daily){{#invoke:DYK|random|length=33|seed=3}}
generates:4
(this number changes daily){{#invoke:DYK|random|length=33|seed=4}}
generates:4
(this number changes daily){{#invoke:DYK|random|length=33|seed=5}}
generates:4
(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: (this changes daily)
local p = {} --p stands for package
function p.random( frame )
math.randomseed(os.date("%d"))
length = frame.args[1] 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[1] or ""
facts = {}
i = 1
result = ""
for fact in string.gmatch(text, '%* %.%.%. .-?') do
facts[i] = fact
i = i + 1
end
if (frame.args[2] == 2) then
key1 = randomdaily(facts.getn, os.date("%d")*os.date("%m")*os.date("%y"))
key2 = randomdaily(facts.getn, os.date("%d")+os.date("%m")+os.date("%y"))
result = facts[key1] .. "\n" .. facts[key2]
else
key = randomdaily(facts.getn, os.date("%d")*os.date("%m")*os.date("%y"))
result = facts[key]
end
return result
end
return p