Module:Sandbox/User:Alsang/PriceChecker

From Brighter Shores Wiki
Jump to navigation Jump to search
Module documentation
This documentation is transcluded from Module:Sandbox/User:Alsang/PriceChecker/doc. [edit] [history] [purge]
This module does not have any documentation. Please consider adding documentation at Module:Sandbox/User:Alsang/PriceChecker/doc. [edit]
Module:Sandbox/User:Alsang/PriceChecker's function main is invoked by Template:Sandbox/User:Alsang/PriceChecker.

local p = {}

-- non dynamic module, no inputs
function p.main()
	-- returns only directly needed parameter needed for the row,
	-- other parameters are determined by subqueries of chained pages
	local query = {
		'[[-Sold item.Shop sell price::+]]',
		'?=Name',
		'?-Sold item.Shop sell price=ShopValue',
		'?Value=InfoboxValue',
		'limit = 500'
	}

	local results = mw.smw.ask(query)
	
	local out = {}
	for _,item in ipairs(results) do
		local i = tonumber(item.InfoboxValue)
		local s = item.ShopValue
		local add = true
		if type(s)=='string' then
			if i==tonumber(s) or not(tonumber(s)) then
				add = false
			end
		elseif type(s)=='table' then
			for _,shop in ipairs(s) do
				if i==tonumber(shop)  or not(tonumber(shop)) then
					add = false
				end
			end
		end
		if add then
			table.insert(out,item.Name)
		end
	end
	
	return table.concat(out, '<br>')
	
end

return p