Module:Sandbox: Difference between revisions
Jump to navigation
Jump to search
>OmegaK2 No edit summary |
>OmegaK2 No edit summary |
||
Line 3: | Line 3: | ||
local getArgs = require('Module:Arguments').getArgs | local getArgs = require('Module:Arguments').getArgs | ||
-- | -- local quest_data = mw.loadData('Module:QuestReward/data') | ||
local quest_data = | local quest_data = require('Module:QuestReward/data') | ||
local poe_classes = {'Marauder', 'Templar', 'Witch', 'Shadow', 'Ranger', 'Duelist', 'Scion'} | local poe_classes = {'Marauder', 'Templar', 'Witch', 'Shadow', 'Ranger', 'Duelist', 'Scion'} | ||
local poe_difficulties = {'Normal', 'Cruel', 'Merciless'} | |||
local data_keys = {'reward', 'type', 'class', 'difficulty', 'quest', 'quest_id', 'act', 'itemlevel', 'rarity', 'sockets', 'page_link'} | |||
local supported_compares = {'eq', 'neq', 'lt', 'gt', 'le', 'ge'} | |||
function p.table(frame) | function p.table(frame) | ||
Line 27: | Line 15: | ||
-- getArgs = require('Module:Arguments').getArgs | -- getArgs = require('Module:Arguments').getArgs | ||
--end | --end | ||
-- TODO: Remove | |||
if frame == nil then | |||
frame = mw.getCurrentFrame() | |||
end | |||
local args = getArgs(frame, { | local args = getArgs(frame, { | ||
parentFirst = true | parentFirst = true | ||
Line 32: | Line 25: | ||
g_frame = frame | g_frame = frame | ||
args. | args.filter_by_difficulty = args.filter_by_difficulty or 1 | ||
args. | --args.filter_by_act = args.filter_by_act or 1 | ||
args. | --args.filter_by_quest_id = args.quest_id or 1 | ||
args.display_style = args.display_style or args.displayStyle or args.DisplayStyle or 'full' | args.display_style = args.display_style or args.displayStyle or args.DisplayStyle or 'full' | ||
args.order_by_difficulty = args.order_by_difficulty or 'le' | |||
args.order_by_act = args.order_by_act or 'le' | |||
args.order_by_quest_id = args.order_by_quest_id or 'le' | |||
out = mw.dumpObject(args) | |||
if args.order_priority == nil then | |||
for | args.order_priority = {'difficulty', 'act', 'quest_id'} | ||
else | |||
local temp = split(args.order_priority) | |||
local out = {} | |||
for _, key1 in ipairs(temp) do | |||
if in_array(data_keys, key1) then | |||
table.insert(out, key1) | |||
else | |||
error("Invalid key in order priority" .. key1) | |||
end | end | ||
end | |||
args.order_priority = out | |||
end | end | ||
local | local filter_keys = {} | ||
local search_keys = {} | |||
for _, key in ipairs(data_keys) do | |||
if args['filter_by_' .. key] ~= nil then | |||
filter_keys[key] = args['filter_by_' .. key] | |||
for | |||
end | end | ||
if args['order_by_' .. key] ~= nil then | |||
comp = args['order_by_' .. key] | |||
if in_array(supported_compares, comp) then | |||
table.insert(search_keys, {key=key, cmp=comp}) | |||
else | |||
error("Invalid compare: " .. comp) | |||
end | end | ||
end | end | ||
end | end | ||
return | return out | ||
end | end | ||
Revision as of 12:44, 5 July 2015
This page is not an actual Scribunto module. It exists to provide editors a place to create experimental modules.
Naming your modules
To keep things tidy, please use the following format to name your experimental modules:
Module:Sandbox/Your username/Module name
Cleaning up unused modules
Experimental modules may be deleted by admins upon request or after a long period of inactivity.
List of modules in this area
For a list of the experimental modules under Module:Sandbox, see Special:PrefixIndex/Module:Sandbox/.
The above documentation is transcluded from Module:Sandbox/doc.
Editors can experiment in this module's sandbox and testcases pages.
Subpages of this module.
Editors can experiment in this module's sandbox and testcases pages.
Subpages of this module.
local p = {}
local g_frame
local getArgs = require('Module:Arguments').getArgs
-- local quest_data = mw.loadData('Module:QuestReward/data')
local quest_data = require('Module:QuestReward/data')
local poe_classes = {'Marauder', 'Templar', 'Witch', 'Shadow', 'Ranger', 'Duelist', 'Scion'}
local poe_difficulties = {'Normal', 'Cruel', 'Merciless'}
local data_keys = {'reward', 'type', 'class', 'difficulty', 'quest', 'quest_id', 'act', 'itemlevel', 'rarity', 'sockets', 'page_link'}
local supported_compares = {'eq', 'neq', 'lt', 'gt', 'le', 'ge'}
function p.table(frame)
--if not getArgs then
-- getArgs = require('Module:Arguments').getArgs
--end
-- TODO: Remove
if frame == nil then
frame = mw.getCurrentFrame()
end
local args = getArgs(frame, {
parentFirst = true
})
g_frame = frame
args.filter_by_difficulty = args.filter_by_difficulty or 1
--args.filter_by_act = args.filter_by_act or 1
--args.filter_by_quest_id = args.quest_id or 1
args.display_style = args.display_style or args.displayStyle or args.DisplayStyle or 'full'
args.order_by_difficulty = args.order_by_difficulty or 'le'
args.order_by_act = args.order_by_act or 'le'
args.order_by_quest_id = args.order_by_quest_id or 'le'
out = mw.dumpObject(args)
if args.order_priority == nil then
args.order_priority = {'difficulty', 'act', 'quest_id'}
else
local temp = split(args.order_priority)
local out = {}
for _, key1 in ipairs(temp) do
if in_array(data_keys, key1) then
table.insert(out, key1)
else
error("Invalid key in order priority" .. key1)
end
end
args.order_priority = out
end
local filter_keys = {}
local search_keys = {}
for _, key in ipairs(data_keys) do
if args['filter_by_' .. key] ~= nil then
filter_keys[key] = args['filter_by_' .. key]
end
if args['order_by_' .. key] ~= nil then
comp = args['order_by_' .. key]
if in_array(supported_compares, comp) then
table.insert(search_keys, {key=key, cmp=comp})
else
error("Invalid compare: " .. comp)
end
end
end
return out
end