Module

DYK

From Dogcraft Wiki

No edit summary
mNo edit summary
 
(24 intermediate revisions by 2 users not shown)
Line 1: Line 1:
local p = {} --p stands for package
local p = {} --p stands for package


--random number that changes daily
function p.random( frame )
function p.random( frame )
     if (frame.args['mode'] == "multiply") then
     math.randomseed((os.date("%d")*os.date("%m")*os.date("%y"))+tonumber(frame.args['seed']))
    seed = os.date("%d")*os.date("%m")*os.date("%y")
length = tonumber(frame.args['length']) or 30
    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)
randnum = math.random(1,length)
     return randnum
     return randnum
end
end


function randomdaily( maxrandom, seed )
--random number that changes weekly
     math.randomseed(os.date("%d")*os.date("%m")*os.date("%y")*seed)
function p.randomW( frame )
    math.randomseed((os.date("%m")*os.date("%y"))+tonumber(frame.args['seed']))
length = tonumber(frame.args['length']) or 30
randnum = math.random(1,length)
    return randnum
end
 
function randomdaily( maxrandom, constant )
     math.randomseed((os.date("%d")*os.date("%m")*os.date("%y"))+constant)
length = maxrandom or 30
length = maxrandom or 30
randnum = math.random(1,length)
randnum = math.random(1,length)
Line 28: Line 32:
for fact in string.gmatch(text, '%* %.%.%. .-?') do
for fact in string.gmatch(text, '%* %.%.%. .-?') do
facts[i] = fact
facts[i] = fact .. "\n"
i = i + 1
i = i + 1
end
end
count = tonumber(frame.args['count'])
start = tonumber(frame.args['start'])
if (count > 5) then
final = tonumber(frame.args['end'])
count = 5
 
elseif (count < 1) then
if (start > 5) then
count = 1
start = 5
elseif (start < 1) then
start = 1
end
if (final > 5) then
final = 5
elseif (final < 1) then
final = 1
end
end
for i=1,count do
 
key = randomdaily(facts.getn, i)
rsindex = 1
resulttable[i] = facts[key]
for j=start,final,1 do
key = randomdaily(facts.getn, j)
resulttable[rsindex] = facts[key]
rsindex = rsindex + 1
end
end
result = table.concat(resulttable, "\n")
result = table.concat(resulttable, "\n")
return result
return frame:preprocess( result )
end
end


return p
return p

Latest revision as of 17:07, 28 August 2022

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: 16 (this number changes daily)
  • {{#invoke:DYK|random|length=33|seed=2}} generates: 23 (this number changes daily)
  • {{#invoke:DYK|random|length=33|seed=3}} generates: 30 (this number changes daily)
  • {{#invoke:DYK|random|length=33|seed=4}} generates: 5 (this number changes daily)
  • {{#invoke:DYK|random|length=33|seed=5}} generates: 12 (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: 28 (this number changes weekly)
  • {{#invoke:DYK|randomW|length=33|seed=2}} generates: 3 (this number changes weekly)
  • {{#invoke:DYK|randomW|length=33|seed=3}} generates: 10 (this number changes weekly)
  • {{#invoke:DYK|randomW|length=33|seed=4}} generates: 17 (this number changes weekly)
  • {{#invoke:DYK|randomW|length=33|seed=5}} generates: 25 (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 the [VIP] rank, given as a reward to specific users, is a leftover Dogcraft.net forum rank that could be purchased c. 2012-2015.
  • ... that during a tour of the City of Havana on Survival 3, 20.png Skelleton123 gave 20.png ReNDoG a T-Shirt dissing sister city Akkara and that the Akkarans returned the favor in their tour later that month?
  • ... 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

--random number that changes daily
function p.random( frame )
    math.randomseed((os.date("%d")*os.date("%m")*os.date("%y"))+tonumber(frame.args['seed']))
	length = tonumber(frame.args['length']) or 30
	randnum = math.random(1,length)
    return randnum
end

--random number that changes weekly
function p.randomW( frame )
    math.randomseed((os.date("%m")*os.date("%y"))+tonumber(frame.args['seed']))
	length = tonumber(frame.args['length']) or 30
	randnum = math.random(1,length)
    return randnum
end

function randomdaily( maxrandom, constant )
    math.randomseed((os.date("%d")*os.date("%m")*os.date("%y"))+constant)
	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 .. "\n"
		i = i + 1
	end
	
	start = tonumber(frame.args['start'])
	final = tonumber(frame.args['end'])

	if (start > 5) then
		start = 5
	elseif (start < 1) then
		start = 1
	end
	
	if (final > 5) then
		final = 5
	elseif (final < 1) then
		final = 1
	end

	rsindex = 1
	for j=start,final,1 do
		key = randomdaily(facts.getn, j)
		resulttable[rsindex] = facts[key]
		rsindex = rsindex + 1
	end
	result = table.concat(resulttable, "\n")
	
	return frame:preprocess( result )
end

return p