Module:NPC Quest Appearance
Jump to navigation
Jump to search
Documentation for Module:NPC Quest Appearance does not exist yet [create] (How does this work?)
local p = {}
function p.resolve(frame)
local page = frame.args.page
local questIDStr = (frame.args.questid or ""):gsub(",", "")
local questID = tonumber(questIDStr)
local function getPageAppearance()
local r = mw.smw.ask({ "[[" .. page .. "]]", "?Has appearance#", "limit=1" })
if r and r[1] then return r[1]["Has appearance"] or "" end
return ""
end
local fallback = frame.args.fallback ~= nil and frame.args.fallback or getPageAppearance()
if not page or not questID then
return fallback
end
local results = mw.smw.ask({
"[[-Has subobject::" .. page .. "]]",
"[[Has internal ID::≤" .. questID .. "]]",
"?Has appearance#",
"sort=Has internal ID",
"order=desc",
"limit=1"
})
if results and results[1] then
return results[1]["Has appearance"] or fallback
end
return fallback
end
function p.test(frame)
local page = frame.args.page
if not page then return "No page specified" end
local results = mw.smw.ask({
"[[-Has subobject::" .. page .. "]]",
"?Has appearance#",
"?Has internal ID#",
"limit=10"
})
if results == nil then return "NIL" end
if #results == 0 then return "EMPTY" end
return mw.dumpObject(results)
end
return p