Module

DYK

From Dogcraft Wiki

No edit summary
No edit summary
Line 14: Line 14:


function randomdaily( maxrandom, seed )
function randomdaily( maxrandom, seed )
ย ย  ย  math.randomseed(seed)
ย ย  ย  math.randomseed(os.date("%d")*os.date("%m")*os.date("%y")*seed)
length = maxrandom or 30
length = maxrandom or 30
randnum = math.random(1,length)
randnum = math.random(1,length)
Line 40: Line 40:
end
end
for i=1,count do
for i=1,count do
keyseed = os.date("%d")*os.date("%m")*os.date("%y")*count
key = randomdaily(facts.getn, count)
key = randomdaily(facts.getn, keyseed)
resulttable[i] = facts[key]
resulttable[i] = facts[key]
end
end

Revision as of 01:09, 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: 17 (this number changes daily)
  • {{#invoke:DYK|random|length=33|seed=2}} generates: 17 (this number changes daily)
  • {{#invoke:DYK|random|length=33|seed=3}} generates: 17 (this number changes daily)
  • {{#invoke:DYK|random|length=33|seed=4}} generates: 17 (this number changes daily)
  • {{#invoke:DYK|random|length=33|seed=5}} generates: 17 (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:

  • ... that there's an unused Nitro UHC final arena that was removed from rotation due to lack of competitive viability, but has since been made available for download via Planet Minecraft?
(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(os.date("%d")*os.date("%m")*os.date("%y")*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, count)
		resulttable[i] = facts[key]
	end
	result = table.concat(resulttable, "\n")
	
	return result
end

return p
This page was last modified on 7 March 2021, at 01:09. (20 months ago)