Module:Sandbox/User:Alsang: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
No edit summary
No edit summary
 
(36 intermediate revisions by the same user not shown)
Line 1: Line 1:
p = {}


local p = {}
function p.main()
return nil
end


function p.stone()
function p.gathererPages1()
local queryString = '[[Variant of::Globeplant||Dandelion||Apple||Haleberries||Chestnut||Catkin||Clover||Snake Scale||Orchid||Dock Leaf||Sage||Thistle]]'
return p.makeTable('stone')
return p.main(queryString)
end
end


function p.metal()
function p.gathererPages2()
local queryString = '[[Variant of::Bone Spike||Femur Shard||Goat Horn||Rams Horn]]'
return p.makeTable('metal')
return p.main(queryString)
end
end


function p.bone()
function p.gathererPages3()
local queryString = '[[Variant of::Leek||Bitterfruit||Tangfruit]]'
return p.makeTable('bone')
return p.main(queryString)
end
end
function p.makeTable(args)
local variants = {'basic','moderate','fine','strong','superior','perfect'}
local variants2 = {'Basic','Moderate','Fine','Strong','Superior','Perfect'}
local weaponsStone = {
'Hammerfist',
'Throwing Stones',
'Stone Slab Shield',
'Stone Mace',
'Stone Discs',
'War Hammer',
'Bolas',
'Stone Chunk Shield',
'Double Headed Hammer',
'Throwing Clubs',
'Great Stone Mace',
' Polished Stone Shield',
'Throwing Hammers',
'Great Hammer',
'Sling'}
local weaponsMetal = {
'Rapier ',
'Throwing Twinblades',
'Metal Kite Shield',
'Flanged Mace',
'Throwing Rings',
'Shortsword',
'Metal Javelins',
'Metal Heater Shield',
'Longsword',
'Throwing Knives',
'Broadsword',
'Metal Buckler',
'Throwing Axes',
'Battleaxe',
'Metal Bow'}
local weaponsBone = {
'Truncheon',
'Blowpipe',
'Wooden Round Shield',
'Cudgel',
'Javelins',
'Club',
'Light Crossbow',
'Wooden Square Shield',
'Quarterstaff',
'Recurve Bow',
'Spear',
'Wooden Hexagon Shield',
'Longbow',
'Poleaxe',
'Heavy Crossbow'}
if args=='stone' then
weapons = weaponsStone
elseif args=='metal' then
weapons = weaponsMetal
elseif args=='bone' then
weapons = weaponsBone
else
return nil
end
local allWeapons = {}
for j,wep in ipairs(weapons) do
table.insert(allWeapons,{page='[[' .. wep .. ']]'})
end


function p.main(queryString)
for i,var in ipairs(variants) do

for j,wep in ipairs(weapons) do
local query = {
table.insert(allWeapons,{page='[[' .. wep .. ' (' .. var .. ')]]',redirect='[[' .. wep .. ' (' .. variants2[i] .. ')]]',wrong='[[' .. variants2[i] .. ' ' .. wep .. ']]'})
queryString,
end
'? #- = name',
end
'?Profession Level A = level',
'?Variant of #-= variant',
'sort = Variant of,Profession Level A',
'limit = 500'
}
local results = mw.smw.ask(query)
for i,item in ipairs(allWeapons) do
for _,page in ipairs(results) do
if string.find(page.name,'Mine') then
page.node = page.name
local query = mw.smw.ask(item.page .. '|?Name #- = data|mainlabel=-')
page.nodevar = page.variant
if type(query)=='table' then
else
item.item = query[1].data
page.node = page.name .. ' (skill node)'
page.nodevar = page.variant .. ' (skill node)'
end
end
local result = mw.smw.ask('[['..page.node..']]|?Activity JSON = data')
page.JSON = (result and result[1] and result[1].data) or ''
local query = mw.smw.ask(item.page .. '|?Uses facility #- = data|mainlabel=-')
if type(query)=='table' then
if type(page.JSON)=='table' then
page.JSON = table.concat(page.JSON,'<br>')
item.facility = query[1].data
end
end
end
end
Line 110: Line 48:
:tag('tr')
:tag('tr')
:tag('th')
:tag('th')
:wikitext('Name of page')
:wikitext('Variant')
:done()
:done()
:tag('th')
:tag('th')
:wikitext('Item on page')
:wikitext('Node Variant')
:done()
:done()
:tag('th')
:tag('th')
:wikitext('Recipe Facility')
:wikitext('Level')
:done()
:done()
:tag('th')
:tag('th')
:wikitext('Redirect page')
:wikitext('Page')
:done()
:done()
:tag('th')
:tag('th')
:wikitext('Incorrect page name')
:wikitext('Node')
:done()
:tag('th')
:wikitext('Node JSON')
:done()
:done()
:done()
:done()

for i, item in ipairs(results) do
local row = out:tag('tr')
--level
for i,item in ipairs(allWeapons) do
local row = out:tag('tr')
:tag('td')
:tag('td')
:wikitext('[['..item.variant..']]')
:wikitext(item.page)
:done()
:tag('td')
:wikitext(item.item)
:done()
:tag('td')
:wikitext(item.facility)
:done()
:tag('td')
:wikitext(item.redirect)
:done()
:tag('td')
:wikitext(item.wrong)
:done()
:done()
:done()
:tag('td')
:wikitext('[['..item.nodevar..']]')
:done()
:done()
:tag('td')
end
:wikitext(item.level)
:done()
return out
:tag('td')
:wikitext('[['..item.name..']]')
:done()
:tag('td')
:wikitext('[['..item.node..']]')
:done()
:tag('td')
:wikitext(item.JSON)
:done()
end
return out

end
end



Latest revision as of 16:27, 23 December 2024

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.

local p = {}

function p.gathererPages1()
	local queryString = '[[Variant of::Globeplant||Dandelion||Apple||Haleberries||Chestnut||Catkin||Clover||Snake Scale||Orchid||Dock Leaf||Sage||Thistle]]'
	return p.main(queryString)
end

function p.gathererPages2()
	local queryString = '[[Variant of::Bone Spike||Femur Shard||Goat Horn||Rams Horn]]'
	return p.main(queryString)
end

function p.gathererPages3()
	local queryString = '[[Variant of::Leek||Bitterfruit||Tangfruit]]'
	return p.main(queryString)
end

function p.main(queryString)

	local query = {
		queryString,
		'? #- = name',
		'?Profession Level A = level',
		'?Variant of #-= variant',
		'sort = Variant of,Profession Level A',
		'limit = 500'
	}
	local results = mw.smw.ask(query)
	
	for _,page in ipairs(results) do
		if string.find(page.name,'Mine') then
			page.node = page.name
			page.nodevar = page.variant
		else
			page.node = page.name .. ' (skill node)'
			page.nodevar = page.variant .. ' (skill node)'
		end
		local result = mw.smw.ask('[['..page.node..']]|?Activity JSON = data')
		page.JSON = (result and result[1] and result[1].data) or ''
		if type(page.JSON)=='table' then
			page.JSON = table.concat(page.JSON,'<br>')
		end
	end
	
	local out = mw.html.create('table')
		:addClass('wikitable sortable')
		:tag('tr')
			:tag('th')
				:wikitext('Variant')
			:done()
			:tag('th')
				:wikitext('Node Variant')
			:done()
			:tag('th')
				:wikitext('Level')
			:done()
			:tag('th')
				:wikitext('Page')
			:done()
			:tag('th')
				:wikitext('Node')
			:done()
			:tag('th')
				:wikitext('Node JSON')
			:done()
		:done()

	for i, item in ipairs(results) do
		local row = out:tag('tr')
		
			--level
			:tag('td')
				:wikitext('[['..item.variant..']]')
			:done()
			:tag('td')
				:wikitext('[['..item.nodevar..']]')
			:done()
			:tag('td')
				:wikitext(item.level)
			:done()
			:tag('td')
				:wikitext('[['..item.name..']]')
			:done()
			:tag('td')
				:wikitext('[['..item.node..']]')
			:done()
			:tag('td')
				:wikitext(item.JSON)
			:done()
			
	end
	
	return out

end

return p