Module:GEMinMax: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
Content added Content deleted
|  (Created page with "-- <nowiki> local prices = mw.loadJsonData('Module:GEPrices/data.json') local _coins = require('Module:Currency')._amount local p = {}  local fmap = { 	wikitable = 'wikitable', 	wikitablereverse = 'wikitablereverse', 	table = 'wikitable', 	t = 'wikitable', 	rtable = 'wikitablereverse', 	rt = 'wikitablereverse', 	bracket = 'bracket', 	b = 'bracket', 	backetreverse = 'backetreverse', 	rb = 'backetreverse', 	item = 'item', 	price = 'price', 	none = 'none' }  local formats =...") | No edit summary Tag: Reverted | ||
| Line 1: | Line 1: | ||
| -- <nowiki> | |||
| local prices = mw.loadJsonData('Module:GEPrices/data.json') | |||
| local _coins = require('Module:Currency')._amount | |||
| local p = {} | local p = {} | ||
| local expr = mw.ext.ParserFunctions.expr | |||
| ⚫ | |||
| ⚫ | |||
| 	local args = getargs(frame) | |||
| 	wikitable = 'wikitable', | |||
| 	return p._min(args) | |||
| 	wikitablereverse = 'wikitablereverse', | |||
| ⚫ | |||
| 	table = 'wikitable', | |||
| 	t = 'wikitable', | |||
| 	rtable = 'wikitablereverse', | |||
| 	rt = 'wikitablereverse', | |||
| 	bracket = 'bracket', | |||
| 	b = 'bracket', | |||
| 	backetreverse = 'backetreverse', | |||
| 	rb = 'backetreverse', | |||
| 	item = 'item', | |||
| 	price = 'price', | |||
| 	none = 'none' | |||
| } | |||
| local formats = { | |||
| 	wikitable = function(i,v) return string.format('| %s\n| %s', i, v) end, | |||
| 	wikitablereverse = function(i,v) return string.format('| %s\n| %s', v, i) end, | |||
| 	bracket = function(i,v) return string.format('%s (%s)', i, v) end, | |||
| 	backetreverse = function(i,v) return string.format('%s (%s)', v, i) end, | |||
| 	item = function(i,v) return i end, | |||
| 	price = function(i,v) return v end, | |||
| 	none = function(i,v) return '' end | |||
| } | |||
| function  | function p._min(tbl) | ||
| 	local  | 	local low = tbl[1] | ||
| 	local value = def | |||
| 	for  | 	for _, v in ipairs(tbl) do | ||
| 		if v < low then | |||
| 			low = v | |||
| ⚫ | |||
| ⚫ | |||
| 				item = v | |||
| ⚫ | |||
| 		end | 		end | ||
| 	end | 	end | ||
| 	return  | 	return low | ||
| end | end | ||
| function p. | function p.max(frame) | ||
| 	local args = getargs(frame) | |||
| 	return findVal(function(pr,v) return v > pr  end, math.huge, args) | |||
| 	return p._max(args) | |||
| ⚫ | |||
| ⚫ | |||
| 	return findVal(function(pr,v) return v < pr  end, -1, args) | |||
| end | end | ||
| function p. | function p._max(tbl) | ||
| 	local  | 	local high = tbl[1] | ||
| ⚫ | |||
| 	for _, v in ipairs(tbl) do | |||
| 	local f = fmap[pargs.format] | |||
| ⚫ | |||
| 	f = formats[f] or formats.bracket | |||
| ⚫ | |||
| 	local r1, r2 = p['_'..c](pargs) | |||
| ⚫ | |||
| 	if pargs.coins == 'y' then | |||
| 		r2 = _coins(r2, 'coins') | |||
| 	elseif pargs.coins == 'n' then | |||
| 		r2 = _coins(r2, 'nocoins') | |||
| 	elseif pargs.coins == 'f' then | |||
| 		r2 = mw.getContentLanguage():formatNum(r2) | |||
| ⚫ | |||
| 	if pargs.link == 'plp' then | |||
| 		r1 = string.format('[[File:%s.png|link=%s]]', r1, r1) | |||
| 	elseif pargs.link == 'p' then | |||
| 		r1 = string.format('[[File:%s.png|link=%s]] [[%s]]', r1, r1, r1) | |||
| 	elseif not pargs.link then | |||
| ⚫ | |||
| 	end | 	end | ||
| 	return high | |||
| ⚫ | |||
| ⚫ | |||
| 		mw.ext.VariablesLua.vardefine(pargs.var..'_item', r1) | |||
| 		mw.ext.VariablesLua.vardefine(pargs.var..'_price', r2) | |||
| function getargs(frame) | |||
| ⚫ | |||
| ⚫ | |||
| 	for _, v in ipairs(args) do | |||
| ⚫ | |||
| 		w = tonumber(w) or tonumber(expr(w)) | |||
| ⚫ | |||
| 			table.insert(nums,w) | |||
| 		end | |||
| 	end | 	end | ||
| 	return  | 	return nums | ||
| end | end | ||
| return p | return p | ||
| -- </nowiki> | |||
Revision as of 00:12, 17 October 2024
Module documentation
This documentation is transcluded from Module:GEMinMax/doc. [edit] [history] [purge]
Module:GEMinMax's function main is invoked by Template:MaxPrice.
Module:GEMinMax's function main is invoked by Template:MinPrice.
Module:GEMinMax is invoked by Template:MinPrice.
Module:GEMinMax is invoked by Template:MaxPrice.
Module:GEMinMax requires Module:Currency.
Module:GEMinMax loads data from Module:GEPrices/data.json.
local p = {}
local expr = mw.ext.ParserFunctions.expr
function p.min(frame)
	local args = getargs(frame)
	return p._min(args)
end
function p._min(tbl)
	local low = tbl[1]
	
	for _, v in ipairs(tbl) do
		if v < low then
			low = v
		end
	end
	
	return low
end
function p.max(frame)
	local args = getargs(frame)
	return p._max(args)
end
function p._max(tbl)
	local high = tbl[1]
	
	for _, v in ipairs(tbl) do
		if v > high then
			high = v
		end
	end
	
	return high
end
	
function getargs(frame)
	args = frame:getParent().args
	local nums = {}
	
	for _, v in ipairs(args) do
		local w = string.gsub(v,',','')
		w = tonumber(w) or tonumber(expr(w))
		if w then
			table.insert(nums,w)
		end
	end
	
	return nums
end
return p