Module:Sandbox/Moxian/OmenOfFortune: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 5: | Line 5: | ||
local p = {} | local p = {} | ||
function p. | 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.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 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" | ||
Line 12: | Line 12: | ||
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) | ||
Line 21: | Line 21: | ||
local result = results[r] | local result = results[r] | ||
if result["cnt"] == "1" then -- filtering to only the items that have a single base | if result["cnt"] == "1" then -- filtering to only the items that have a single base | ||
-- <base item class> | -- <base item class> | ||
table.insert(out_chunks, "\n|-\n| ") | |||
table.insert(out_chunks, result["class_b"]) | table.insert(out_chunks, result["class_b"]) | ||
-- {{il|page=<base item here>}} | -- {{il|page=<base item here>}} | ||
table.insert(out_chunks, "\n| ") | |||
table.insert(out_chunks, frame:expandTemplate{title="il", args = {page=result["page_b"]}}) | table.insert(out_chunks, frame:expandTemplate{title="il", args = {page=result["page_b"]}}) | ||
-- {{il|page=<unique item here>}} | -- {{il|page=<unique item here>}} | ||
table.insert(out_chunks, "\n| ") | |||
table.insert(out_chunks, frame:expandTemplate{title="il", args = {page=result ["page_u"]}}) | table.insert(out_chunks, frame:expandTemplate{title="il", args = {page=result ["page_u"]}}) | ||
end | end | ||
end | end | ||
table.insert(out_chunks, "\n|}") -- table footer | |||
local out = table.concat(out_chunks,"") | local out = table.concat(out_chunks,"") | ||
return out | return out | ||
end | end | ||
return p | return p |
Latest revision as of 00:37, 25 May 2024
You might want to create a documentation page for this module.
Editors can experiment in this module's sandbox and testcases pages.
Please add categories to the /doc subpage. Subpages of this module.
Editors can experiment in this module's sandbox and testcases pages.
Please add categories to the /doc subpage. Subpages of this module.
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