Module:Data
Jump to navigation
Jump to search
Documentation for this module may be created at Module:Data/doc
local p = {}
function p.addStrat( frame )
local args = frame.args
local out_args = {}
for k, v in pairs(args) do
if v == '' then
out_args[k] = nil
else
out_args[k] = parseArg(v)
end
end
out_args[1] = nil
bucket("skips").put(out_args)
end
function p.addEye( frame )
local args = frame.args
local out_args = {}
for k, v in pairs(args) do
if v == '' then
out_args[k] = nil
else
out_args[k] = parseArg(v)
end
end
out_args[1] = nil
bucket("eyes").put(out_args)
end
function p.getEyesInArea( frame )
local args = frame.args
local area = args[1]
local raw_matches = bucket("eyes").select("page_name", "thumbnail")
.where("area", area)
.run()
local output = ""
for i,match in ipairs(raw_matches) do
local thumbnail = match['thumbnail']
local page_name = match['page_name']
local gallery_item = frame:expandTemplate{ title = 'EyeGalleryItem', args = { eye = page_name, thumbnail = thumbnail } }
output = output .. gallery_item
end
local output_len = string.len( output )
if output_len >= 1 then
return '<div class="solar-eyegallery">' .. output .. '</div>'
else
return '<div class="solar-eyegallery-empty">No eyes found</div>'
end
end
function p.getStratsInArea( frame )
local args = frame.args
local area = args[1]
local raw_matches = bucket("skips").select("page_name", "area", "description")
.where("area", area)
.run()
local in_this_area = {}
for i,match in ipairs(raw_matches) do
local areas = match['area']
if areas[1] == area then
table.insert(in_this_area, match)
end
end
if #in_this_area >= 1 then
local output = mw.html.create('ul')
for i,match in ipairs(in_this_area) do
local item = output:tag('li'):wikitext("[[" .. match["page_name"] .. "]]")
if match["description"] then
item:wikitext(" (" .. match["description"] .. ")")
end
item:done()
end
return tostring(output)
else
return tostring(mw.html.create('p'):css('opacity', '.6'):wikitext('(No skips found)'))
end
end
function p.getStratsLeadingToArea( frame )
local args = frame.args
local area = args[1]
local raw_matches = bucket("skips").select("page_name", "area", "description")
.where("area", area)
.run()
local not_starting_here = {}
for i,match in ipairs(raw_matches) do
local areas = match['area']
if areas[1] ~= area then
table.insert(not_starting_here, match)
end
end
if #not_starting_here >= 1 then
local output = mw.html.create('ul')
for i,match in ipairs(not_starting_here) do
local item = output:tag('li'):wikitext("[[" .. match["page_name"] .. "]]")
if match["description"] then
item:wikitext(" (" .. match["description"] .. ")")
end
item:done()
end
return tostring(output)
else
return tostring(mw.html.create('p'):css('opacity', '.6'):wikitext('(No skips found)'))
end
end
function parseArg( arg )
local arr = {}
for word in mw.ustring.gmatch(arg, '([^,]+)') do
table.insert(arr, mw.text.trim(word) )
end
if #arr > 1 then
return arr
else
return arr[1]
end
end
return p