Module:Sandbox/Moxian/OmenOfFortune: Difference between revisions

From Path of Exile Wiki
Jump to navigation Jump to search
(Created page with "require('Module:No globals') local m_util = require('Module:Util') local cargo = mw.ext.cargo local m_cargo = require('Module:Cargo') local p = {} function p.guaranteed_uniques_rows(frame) local tables = "items=items_u,items=items_b" local fields = "COUNT(items_u.name)=cnt, items_b._pageName=page_b, items_u._pageName=page_u, items_u.inventory_icon=icon_u, items_b.inventory_icon=icon_b" local args = { where = 'items_u.rarity="unique" AND items_u.drop_enabled AND NOT...")
 
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 2: Line 2:
local m_util = require('Module:Util')
local m_util = require('Module:Util')
local cargo = mw.ext.cargo
local cargo = mw.ext.cargo
local m_cargo = require('Module:Cargo')
-- local m_cargo = require('Module:Cargo')


local p = {}
local p = {}
function p.guaranteed_uniques_rows(frame)
function p.guaranteed_uniques_table(frame)
local tables = "items=items_u,items=items_b"
local tables = "items=items_u,items=items_b"
local fields = "COUNT(items_u.name)=cnt, items_b._pageName=page_b, items_u._pageName=page_u, items_u.inventory_icon=icon_u, items_b.inventory_icon=icon_b"
local fields = "COUNT(items_u.name)=cnt, items_b.class=class_b, items_b._pageName=page_b, items_u._pageName=page_u, items_u.inventory_icon=icon_u, items_b.inventory_icon=icon_b"
local args = {
local args = {
where = 'items_u.rarity="unique" AND items_u.drop_enabled AND NOT items_u.is_drop_restricted AND items_b.drop_enabled',
where = 'items_u.rarity="unique" AND items_u.drop_enabled AND NOT items_u.is_drop_restricted AND items_b.drop_enabled',
join = 'items_u.base_item_id=items_b.metadata_id',
join = 'items_u.base_item_id=items_b.metadata_id',
groupBy = 'items_b.metadata_id',
groupBy = 'items_b.metadata_id',
limit = 10,
-- limit = 10,
}
}
local results = cargo.query(tables, fields, args)
local results = cargo.query(tables, fields, args)
local guaranteed_results = {}
local out_chunks = {}
-- table header
table.insert(out_chunks, '{| class="wikitable sortable mw-collapsible mw-collapsed"\n! scope="col" |Class\n! scope="col" |Basetype\n! scope="col" |Result\n')
for r=1, #results do
for r=1, #results do
local result = results[r]
local result = results[r]
-- mw.logObject(result)
if result["cnt"] == "1" then  -- filtering to only the items that have a single base
if result["cnt"] == "1" then
-- <base item class>
table.insert(guaranteed_results, result)
table.insert(out_chunks, "\n|-\n| ")
table.insert(out_chunks, result["class_b"])
-- {{il|page=<base item here>}}
table.insert(out_chunks, "\n| ")  
table.insert(out_chunks, frame:expandTemplate{title="il", args = {page=result["page_b"]}})
-- {{il|page=<unique item here>}}
table.insert(out_chunks, "\n| ")
table.insert(out_chunks, frame:expandTemplate{title="il", args = {page=result ["page_u"]}})
end
end
end
end
local rows = {}
table.insert(out_chunks, "\n|}") -- table footer
for r=1, #guaranteed_results do
local out = table.concat(out_chunks,"")
local result = guaranteed_results[r]
table.insert(rows, "|-\n| {{il|page=" .. result["page_b"] .. "}}\n| {{il|page=" .. result ["page_u"] .. "}}\n")
end
local out = table.concat(rows,"")
return out
return out
end
end
return p
return p

Latest revision as of 00:37, 25 May 2024

Module documentation[create] [purge]
require('Module:No globals')
local m_util = require('Module:Util')
local cargo = mw.ext.cargo
-- local m_cargo = require('Module:Cargo')

local p = {}
function p.guaranteed_uniques_table(frame)
	local tables = "items=items_u,items=items_b"
	local fields = "COUNT(items_u.name)=cnt, items_b.class=class_b, items_b._pageName=page_b, items_u._pageName=page_u, items_u.inventory_icon=icon_u, items_b.inventory_icon=icon_b"
	local args = {
		where = 'items_u.rarity="unique" AND items_u.drop_enabled AND NOT items_u.is_drop_restricted AND items_b.drop_enabled',
		join = 'items_u.base_item_id=items_b.metadata_id',
		groupBy = 'items_b.metadata_id',
		-- limit = 10,
	}
	local results = cargo.query(tables, fields, args)
	local out_chunks = {}
	-- table header
	table.insert(out_chunks, '{| class="wikitable sortable mw-collapsible mw-collapsed"\n! scope="col" |Class\n! scope="col" |Basetype\n! scope="col" |Result\n')
	for r=1, #results do
		local result = results[r]
		if result["cnt"] == "1" then  -- filtering to only the items that have a single base
			-- <base item class>
			table.insert(out_chunks, "\n|-\n| ") 
			table.insert(out_chunks, result["class_b"])
			-- {{il|page=<base item here>}}
			table.insert(out_chunks, "\n| ") 
			table.insert(out_chunks, frame:expandTemplate{title="il", args = {page=result["page_b"]}})
			-- {{il|page=<unique item here>}}
			table.insert(out_chunks, "\n| ")
			table.insert(out_chunks, frame:expandTemplate{title="il", args = {page=result ["page_u"]}})
		end
	end
	table.insert(out_chunks, "\n|}") -- table footer
	local out = table.concat(out_chunks,"")
	return out
end
return p