Editing Module:Room features

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 3: Line 3:
function p.main(frame)
function p.main(frame)
local args = frame:getParent().args
local args = frame:getParent().args
return p._main(args[1] or mw.title.getCurrentTitle().fullText, frame)
return p._main(args)
end
end


local infobox_cat_map = {
local infobox_cat_map = {
['monster'] = 'Monsters',
['Monster'] = 'Monsters',
['npc'] = 'Non-player characters',
['NPC'] = 'Non-player characters',
['scenery'] = 'Scenery',
['Scenery'] = 'Scenery',
['skill_node'] = 'Nodes',
['Skill_node'] = 'Nodes'
['venture'] = 'Ventures',
['shop'] = 'Shops',
['variant_category'] = 'Variants',
}
}


Line 27: Line 24:
'?Location object.Image#-=image_sub',
'?Location object.Image#-=image_sub',
'?Location object.Infobox=infobox_sub',
'?Location object.Infobox=infobox_sub',
'?Location object.Variant type=vartype_sub',
'?Location quantity',
'?Location quantity',
'?#-',
'?#-',
Line 37: Line 33:
end
end


function p._main(location, frame)
function p._main(args)
frame = frame or mw.getCurrentFrame()
local frame = mw.getCurrentFrame()
local ret = mw.html.create()
local ret = mw.html.create()
local location = args[1] or mw.title.getCurrentTitle().fullText


local query = mw.smw.ask(base_query(location))
local query = mw.smw.ask(base_query(location))
local empty = true
if query ~= nil then
if query ~= nil then
mw.logObject(query)
local results_by_type = {}
local results_by_type = {}
for i,v in pairs(infobox_cat_map) do
for i,v in pairs(infobox_cat_map) do
Line 50: Line 45:
end
end
for i,v in ipairs(query) do
for i,v in ipairs(query) do
local infobox_type = (v.infobox_sub=='Variant_Category' and v.vartype_sub) or v.infobox_sub or v.infobox or ''
local key = infobox_cat_map[v.infobox_sub or v.infobox]
--convert to all lower case with underscores instead of spaces, for best possible matching
infobox_type = string.lower(infobox_type)
infobox_type = string.gsub(infobox_type,' ','_')
local key = infobox_cat_map[infobox_type]
-- Can be nil - See East Beach for example
-- Can be nil - See East Beach for example
if key ~= nil then
if key ~= nil then
Line 62: Line 53:
for cat,results in pairs(results_by_type) do
for cat,results in pairs(results_by_type) do
if #results > 0 then
if #results > 0 then
empty = false
ret
ret
:tag('h3'):wikitext(header_text_override[cat] or cat):done()
:tag('h3'):wikitext(header_text_override[cat] or cat):done()
Line 86: Line 76:
end
end
end
end
else
end

if empty then
ret:tag('dd')
ret:tag('dd')
:wikitext("''No room features found" .. require('Module:Purge')._purge{ anchor = 'roomfeatures_purge', text = '(refresh)', tag = 'sup' } .. "''[[Category:Empty room features]]")
:wikitext("''No room features found''[[Category:Empty room features]] ")
:wikitext(require('Module:Purge')._purge{ anchor = 'roomfeatures_purge', text = '(refresh)' })
:done()
:done()
end
end
Please note that all contributions to Brighter Shores Wiki are considered to be released under the CC BY-NC-SA 3.0 (see Brighter Shores:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)
Preview page with this template

This page is a member of a hidden category: