Module:Sandbox/User:Alsang

From Brighter Shores Wiki
Revision as of 15:32, 31 December 2024 by Alsang (talk | contribs)
Jump to navigation Jump to search
Module documentation
This documentation is transcluded from Module:Sandbox/User:Alsang/doc. [edit] [history] [purge]
This module does not have any documentation. Please consider adding documentation at Module:Sandbox/User:Alsang/doc. [edit]
Module:Sandbox/User:Alsang's function main is invoked by Template:Sandbox/User:Alsang.

p = {}

function p.main()
	
	local query = '[[Category:Guardian Equipment]] AND [[Variant type::~*]]|?#-=name|limit=500'
	local results = mw.smw.ask(query)
	
	local out = mw.html.create('table')
		:addClass('wikitable sortable')
	for _,page in ipairs(results) do
		out:tag('tr')
			:tag('th')
				:wikitext('[[' .. page.name .. ']]')
			:done()
			:tag('td')
				:wikitext('[[' .. page.name .. ' (basic)]]')
			:done()
			:tag('td')
				:wikitext('[[' .. page.name .. ' (moderate)]]')
			:done()
			:tag('td')
				:wikitext('[[' .. page.name .. ' (fine)]]')
			:done()
			:tag('td')
				:wikitext('[[' .. page.name .. ' (strong)]]')
			:done()
			:tag('td')
				:wikitext('[[' .. page.name .. ' (superior)]]')
			:done()
			:tag('td')
				:wikitext('[[' .. page.name .. ' (perfect)]]')
			:done()
		:done()
	end
	
	return out
	
end

function p.main2()
	
	local query = '[[Category:Guardian Equipment]] AND [[Variant type::~*]]|?#-=name|limit=500'
	local results = mw.smw.ask(query)
	
	
	local out = mw.html.create('table')
		:addClass('wikitable sortable')
	for _,page in ipairs(results) do
		out:tag('tr')
			:tag('th')
				:wikitext('[[' .. page.name .. ']]')
			:done()
			:tag('td')
				:wikitext('[[File:' .. page.name .. '.png]]')
			:done()
			:tag('td')
				:wikitext('[[File:' .. page.name .. ' (basic).png]]')
			:done()
			:tag('td')
				:wikitext('[[File:' .. page.name .. ' (moderate).png]]')
			:done()
			:tag('td')
				:wikitext('[[File:' .. page.name .. ' (fine).png]]')
			:done()
			:tag('td')
				:wikitext('[[File:' .. page.name .. ' (strong).png]]')
			:done()
			:tag('td')
				:wikitext('[[File:' .. page.name .. ' (superior).png]]')
			:done()
			:tag('td')
				:wikitext('[[File:' .. page.name .. ' (perfect).png]]')
			:done()
		:done()
	end
	
	return out
	
end

function p.main3()
	
	local query = '[[Category:Guardian Equipment]] AND [[Variant type::~*]]|?#-=name|limit=500'
	local results = mw.smw.ask(query)
	
	
	local out = mw.html.create('table')
		:addClass('wikitable sortable')
	for _,page in ipairs(results) do
		out:tag('tr')
			:tag('th')
				:wikitext('[[' .. page.name .. ']]')
			:done()
			:tag('td')
				:wikitext('[[File:' .. page.name .. ' (basic) dye.png]]')
			:done()
			:tag('td')
				:wikitext('[[File:' .. page.name .. ' (moderate) dye.png]]')
			:done()
			:tag('td')
				:wikitext('[[File:' .. page.name .. ' (fine) dye.png]]')
			:done()
			:tag('td')
				:wikitext('[[File:' .. page.name .. ' (strong) dye.png]]')
			:done()
			:tag('td')
				:wikitext('[[File:' .. page.name .. ' (superior) dye.png]]')
			:done()
			:tag('td')
				:wikitext('[[File:' .. page.name .. ' (perfect) dye.png]]')
			:done()
		:done()
	end
	
	return out
	
end

function p.nodes()

	local query = {'[[~*(skill node)]]',
		'?= node',
		'?Description=nodeDesc',
		'?Has subobject.Dropped item = item',
		'?Has subobject.Dropped item.Description=itemDesc',
		'limit=500',
		'sort=Variant of,Profession Level A'
	}
	local results = mw.smw.ask(query)

	local same = {}
	local onlyitem = {}
	local onlynode = {}
	local neither = {}
	local different = {}
	for _,page in ipairs(results) do
		if page.nodeDesc == nil and page.itemDesc == nil then
			table.insert(neither,page)
		elseif page.nodeDesc == nil and page.itemDesc ~= nil then
			table.insert(onlyitem,page)
		elseif page.nodeDesc ~= nil and page.itemDesc == nil then
			table.insert(onlynode,page)
		elseif page.nodeDesc == page.itemDesc then
			table.insert(same,page)
		else
			table.insert(different,page)
		end
	end
	
	local onlyitemN = 0
	for _,_ in ipairs(onlyitem) do
		onlyitemN = onlyitemN + 1
	end
	
	local onlynodeN = 0
	for _,_ in ipairs(onlynode) do
		onlynodeN = onlynodeN + 1
	end
	
	local neitherN = 0
	for _,_ in ipairs(neither) do
		neitherN = neitherN + 1
	end
	
	local differentN = 0
	for _,_ in ipairs(different) do
		differentN = differentN + 1
	end
	
	local out = mw.html.create('table')
		:addClass('wikitable sortable')
		
		:tag('tr')
			:tag('th')
				:wikitext('Item only')
			:done()
			:tag('td')
				:wikitext(onlyitemN)
			:done()
		:done()
		
		:tag('tr')
			:tag('th')
				:wikitext('Node')
			:done()
			:tag('th')
				:wikitext('Node description')
			:done()
			:tag('th')
				:wikitext('Item')
			:done()
			:tag('th')
				:wikitext('Item description')
			:done()
		:done()
		
		for _,page in ipairs(onlyitem) do
			out:tag('tr')
				:tag('td')
					:wikitext(page.node)
				:done()
				:tag('td')
					:wikitext(page.nodeDesc)
				:done()
				:tag('td')
					:wikitext(page.item)
				:done()
				:tag('td')
					:wikitext(page.itemDesc)
				:done()
			:done()
		end
		
		out:tag('tr')
			:tag('th')
				:wikitext('Node only')
			:done()
			:tag('td')
				:wikitext(onlynodeN)
			:done()
		:done()
		
		:tag('tr')
			:tag('th')
				:wikitext('Node')
			:done()
			:tag('th')
				:wikitext('Node description')
			:done()
			:tag('th')
				:wikitext('Item')
			:done()
			:tag('th')
				:wikitext('Item description')
			:done()
		:done()
		
		for _,page in ipairs(onlynode) do
			out:tag('tr')
				:tag('td')
					:wikitext(page.node)
				:done()
				:tag('td')
					:wikitext(page.nodeDesc)
				:done()
				:tag('td')
					:wikitext(page.item)
				:done()
				:tag('td')
					:wikitext(page.itemDesc)
				:done()
			:done()
		end
		
		out:tag('tr')
			:tag('th')
				:wikitext('Niether')
			:done()
			:tag('td')
				:wikitext(neitherN)
			:done()
		:done()
		
		:tag('tr')
			:tag('th')
				:wikitext('Node')
			:done()
			:tag('th')
				:wikitext('Node description')
			:done()
			:tag('th')
				:wikitext('Item')
			:done()
			:tag('th')
				:wikitext('Item description')
			:done()
		:done()
		
		for _,page in ipairs(neither) do
			out:tag('tr')
				:tag('td')
					:wikitext(page.node)
				:done()
				:tag('td')
					:wikitext(page.nodeDesc)
				:done()
				:tag('td')
					:wikitext(page.item)
				:done()
				:tag('td')
					:wikitext(page.itemDesc)
				:done()
			:done()
		end
		
		out:tag('tr')
			:tag('th')
				:wikitext('Different')
			:done()
			:tag('td')
				:wikitext(differentN)
			:done()
		:done()
		
		:tag('tr')
			:tag('th')
				:wikitext('Node')
			:done()
			:tag('th')
				:wikitext('Node description')
			:done()
			:tag('th')
				:wikitext('Item')
			:done()
			:tag('th')
				:wikitext('Item description')
			:done()
		:done()
		
		for _,page in ipairs(different) do
			out:tag('tr')
				:tag('td')
					:wikitext(page.node)
				:done()
				:tag('td')
					:wikitext(page.nodeDesc)
				:done()
				:tag('td')
					:wikitext(page.item)
				:done()
				:tag('td')
					:wikitext(page.itemDesc)
				:done()
			:done()
		end
	
	return out
	
end


return p