Module:Sandbox/Moxian/OmenOfFortune: Difference between revisions
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. | 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 | 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] | ||
-- | if result["cnt"] == "1" then -- filtering to only the items that have a single base | ||
-- <base item class> | |||
table.insert( | 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 | ||
table.insert(out_chunks, "\n|}") -- table footer | |||
local out = table.concat(out_chunks,"") | |||
local out = table.concat( | |||
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