Module:Sandbox/MjolnirPants

local getArgs = require('Module:Arguments').getArgs
p = {}

--Hurls a randomly generated, nonsensical insult.
--Invoke using:
--{{#invoke:MjolnirPants|NonsenseNameCaller}}
p.NonsenseNameCaller = function()
	--set up the syntax
	local syntaxes = {
		"You are a _1_ _2_.", 
		"Go away, you _1_ _2_.", 
		"You _1_ _2_.", 
		"Have you always been so _1_, you _2_?", 
		"Listen, _2_, stop being so _1_."
	}
	local syntaxMax = 5
	
	--set up the adjective
	local adjectives = {
		"bildering",
		"globulish",
		"pustulating",
		"gilberous",
		"blartous"
	}
	local adjMax = 5
	
	--set up the noun
	local nouns = {
		"bustule",
		"narklaholic",
		"gandypuffer",
		"dorkleragger",
		"plonk"
	}
	local nounMax = 5
	
	--pick the three elements
	local seed = math.floor(os.time())
	math.randomseed(seed)
	local syntax = syntaxes[math.random(syntaxMax)]
	local adjective = adjectives[math.random(adjMax)]
	local noun = nouns[math.random(nounMax)]
	
	--make the insult
	local insult = string.gsub(syntax, "_1_", adjective)
	insult = string.gsub(insult, "_2_", noun)
	return insult
end

p.GraphSelector = function()
	--initialize the random number genny
	local seed = math.floor(os.time())
	math.randomseed(seed)
	
	--Get the X and Y offsets
	local xOffset = math.random(10) * 250
	local yOffset = math.random(10) * 250
	
	--Concatenate the string and return it
	local resString = "{{CSS image drop|Image = ECDF-100.png|bSize = 2500|cWidth = 250|cHeight = 250|oTop = " .. xOffset .. "|oLeft = " .. yOffset .. "|Location = left|Description = The blue step function graph shows an empirical distribution function. The grey bars represent the observations in the sample corresponding to the sample’s empirical distribution function, and the green curve, which asymptotically approaches a height of 1 without reaching it, is the true cumulative distribution function.}}"
	
	return resString
end

p.GraphPickerX = function()
	local seed = math.floor(os.time())
	math.randomseed(seed)
	
	--Get the X and Y offsets
	local xOffset = math.random(0, 9) * 250
	
	return xOffset
end

p.GraphPickerY = function()
	local seed = math.floor(os.time()) + 1 -- just to be sure
	math.randomseed(seed)
	
	--Get the X and Y offsets
	local yOffset = math.random(0, 9) * 250
	
	return yOffset
end

function p.test(frame)
	local pgCont = mw.title.new("User:MjolnirPants/Voices"):getContent()
	return pgCont
end

function p.PingRFCUsers(frame)
	local args = getArgs(frame)
	return p._PingRFCUsers(args)
end

function p._PingRFCUsers(args)
	local pageSource = ""
	--check the size of the arguments array
	--if there's more than one, the second one
	--should be the name of the page on which
	--to find the discussion
	if args[2] then
		--get the title from the second argument
		pageSource = mw.title.new(args[2]):getContent()
		flag = 1
	else		
		--If no second parameter was passed, then
		--the discussion is on the current page
		pageSource = mw.title.getCurrentTitle():getContent()
		flag = 2
	end
	
	local users = {}
	local ii = 1
	local i, j = string.find(pageSource, "==" .. args[1])
	pageSource = string.sub(pageSource, i + string.len(args[1]) + 4)
	i, j = string.find(pageSource, "==")
	pageSource = string.sub(pageSource, 1, i - 1)
	i, j = string.find(pageSource, "%[%[User:")
	local uName = ""
	local k, l, m, n = i + 1
	local cat = "Pinging participants of [[#" .. args[1] .."|previous RfC]]: {{ping"
	while i ~= nil do
		i, j = string.find(pageSource, "%[%[User:")
		if j then
			pageSource = string.sub(pageSource, j)
			j = 1
			k, l = string.find(pageSource, "|")
			m, n = string.find(pageSource, "%]%]")
			if (m > k) then
				uName = string.sub(pageSource, j + 1, k - 1)
				pageSource = string.sub(pageSource, k)
			else
				uName = string.sub(pageSource, j + 1, m - 1)
				pageSource = string.sub(pageSource, m)
			end
			users[ii] = uName
			cat = cat .. "|" .. uName
			ii = ii + 1
		end
	end
	
	cat = cat .. "}} ~~~~"
	
	-- local ret = "{{u|"
	
	-- for _, v in ipairs(users) do
		-- ret = ret .. v .. "|"
	-- end
	--return string.sub(ret, 1, string.len(ret) - 1) .. "}}"
	--return pageSource.. "\r\nusers:" .. cat .. "\r\ni:" .. i .. " j:" .. j .. " k:" .. k .. " l:" .. l .. " m:" .. m .. " n:" .. n
	return cat
	--return "\r\n" .. mw.title.new(args[2]):getContent()
end

return p

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.