Module:Utility

From PKC
Revision as of 16:43, 15 June 2022 by Benkoo (talk | contribs)
Jump to navigation Jump to search

Documentation for this module may be created at Module:Utility/doc

p = {}

function p.returnTableFromString(a)
	arg1 = mw.getCurrentFrame().args[1]
	local result = mw.text.split(arg1,"%s*,%s*")
	local newString = ""
	for word in result:gmatch('[^,%s]+') do
    	newString = "[[Category:" .. word .."]] "
	end
	return newString
end

function p.monthNumberToName(a)
	arg1 = mw.getCurrentFrame().args[1]
	monthNames = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
	monthNumber = tonumber(arg1)
	return monthNames[monthNumber]
end

function p.monthNumberToFullMonthName(a)
	arg1 = mw.getCurrentFrame().args[1]
	monthNames = {"January", "Feburary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}
	monthNumber = tonumber(arg1)
	return monthNames[monthNumber]
end

function p.embedYoutubeVideo(a)
	cf = mw.getCurrentFrame()
	videoIDStr = mw.getCurrentFrame().args[1]
	aString = "https://www.youtube.com/embed/" .. videoIDStr
	local div = mw.html.create( 'DIV' )
	div
	 :tag("iframe")
     :attr( 'width', '420' )
     :attr( 'height', '315' )
     :attr('src', aString)
	return a:preprocess(tostring( div ))
end

function p.returnHTMLText(a)
	pageContent = tostring(mw.getCurrentFrame().args[1])
	local div = mw.html.create( 'syntaxhighlight' )
	div
     :attr( 'lang', 'HTML' )
     :wikitext( pageContent )
	return a:preprocess(tostring( div ))
end

function p.returnNowkiText(a)
	pageContent = tostring(mw.getCurrentFrame().args[1])
	local div = mw.html.create( 'nowiki' )
	div
     :wikitext( pageContent )
	return a:preprocess(tostring( div ))
end

function p.luaSourceCodeText(a)
	pageContent = tostring(mw.getCurrentFrame().args[1])
	local div = mw.html.create( 'syntaxhighlight' )
	div
     :attr( 'lang', 'lua' )
     :wikitext( pageContent )
	return a:preprocess(tostring( div ))
end

function p.originalText(a)
	return mw.getCurrentFrame().args[1]
end

function p.reverseResult(a)
	str = mw.getCurrentFrame().args[1]
	text = string.reverse(str)
	return a:preprocess(text)
end

function p.reverse(a)
	str = mw.getCurrentFrame().args[1]
	text = string.reverse(str)
	return text
end

function p.rawstring()
	cf = mw.getCurrentFrame()
	return mw.allToString(cf.args[1])
end

function p.selector()
	cf = mw.getCurrentFrame()
	arg1 = cf.args[1]
	if arg1 == "1" then
		return cf.args[2]
	elseif arg1 == "2" then
		return cf.args[3]
	else
		return "Error"
	end
end

function p.multiArgument()
	cf = mw.getCurrentFrame()
	arg1 = cf.args[1]
	arg2 = cf.args[2]
	arg3 = cf.args[3]
	return arg1 .. " ," .. arg2 .. " ," .. arg3
end

function p.arithmetic(cf)
	arg1 = cf.args[1]
	arg2 = cf.args[2]
	arg3 = cf.args[3]
	num = 0 + arg1 + arg2 + arg3
	return num
end

function p.trig(cf)
	return math.cos(cf.args[1])
end

function p.repetition(cf)
	aList = { }
	aString = ""
	count = cf.args[1]  + 0
	count2 = cf.args[2]  + 0

	while  count > 0 
	do
		table.insert(aList, count)
		count = count -1
	end
	
	for name = cf.args[1], cf.args[2]  do
		table.insert(aList, name)
	end
	resultString = ""
	elementCount = #aList
	while  elementCount > 1 
	do
		resultString = resultString .. " " .. aList[elementCount] .. ","
		elementCount = elementCount - 1
	end
	return resultString
end

function p.pagesInCategory(cf)
	cat = cf.args[1]
	which = cf.args[2]
	params = {"all", "subcats", "files", "pages" }
	return mw.site.stats.pagesInCategory(cat, which)
end


return p