Module:QuestList: Difference between revisions

536 bytes added ,  Thursday at 08:15
query episodes
No edit summary
(query episodes)
Line 7:
function p.main(frame)
local args = frame:getParent().args
 
local episode = ''
-- get all episodes by episode sequence order --
local quest_type = ''
local episodes = mw.smw.ask{
'[[Category:Episodes]]',
if (args.episode) then
episode = ('[[EpisodeName::%s]]'):format( args.episode or '+' ),
'[[Episode sequence number::+]]',
end
'[[Release Date::+]]',
'?Name#-',
if (args.type) then
quest_type = ('[[Quest type::%s]]'):format( args.type )
end
local data = mw.smw.ask{
'[[Category:Quests]]',
episode,
quest_type,
'[[Name::+]]',
'?Difficulty',
'?Requirements',
'order=asc',
'sort=override_seq,DifficultyEpisode sequence number',
'limitlink=500none',
'linkformat=allplainlist'
}
local table = mw.html.create('table')
:addClass('wikitable quest-table sortable align-center-2 align-leftcenter-3 align-left-4')
:css{
['width'] = '5055%'
}
:attr{ cellspacing = '3' }
:IF( args.episode )
for _, episode in ipairs(episodes) do
:tag('tr')
:tag('th')
:attr('colspan', 3)
:wikitext( parse.episode_func( args.episode ) )
:done()
:done()
:END()
:tag('tr')
:tag('th')
:wikitext("Quest")
:done()
:tag('th')
:wikitext("Difficulty")
:done()
:tag('th')
:wikitext("Requirements")
:done()
:done()
for _, quest in ipairs( data ) do
table
:tag('tr')
:tag('tdth')
:wikitextattr('colspan', quest[1] 4)
:wikitext('[[File:'.. episode.Name ..' episode icon.png|16px]] ' .. episode[1])
:done()
:done()
:tag('tdtr')
:css{tag('th')
[:wikitext('width'] = '100pxQuest')
}:done()
:tag('th')
:wikitext( parse.difficulty_func( tostring( quest['Difficulty']) ) )
:wikitext('Type')
:done()
:tag('th')
:wikitext('Difficulty')
:done()
:tag('th')
:wikitext('Requirements')
:done()
:done()
:tag('td')
if ( episode ) then
:css{
-- get all quests for episode --
['width'] = '55%'
local quests = mw.smw.ask{
'[[Category:Quests]]',
'[[Name::+]]',
('[[Episode::%s]]'):format( episode.Name ),
'?Quest type',
'?Difficulty',
'?Requirements',
'order=asc',
'sort=Quest type,override_seq,Difficulty'
}
:IF(quest['Requirements'])
:tagif ('div' quests ) then
-- get quests for episode --
:addClass('lighttable checklist')
for _, quest in ipairs( quests ) do
:newline()
table
:wikitextIf( quest['Requirements'], quest['Requirements'] )
:newlinetag('tr')
:donetag('td')
:ELSEwikitext( quest[1] )
:tagdone('p')
:wikitexttag('Nonetd')
:done()css {
['width'] = '50px'
:END()
:done() }
:wikitext( quest['Quest type'] )
:done()
:done()
:tag('td')
:wikitext( parse.difficulty_func( tostring(quest.Difficulty ) ) )
:done()
:tag('td')
:css {
['width'] = '55%'
}
:tag('div')
:addClass('lighttable checklist')
:newline()
:wikitext( quest.Requirements )
:newline()
:done()
:done()
:done()
end
end
end
end
table:done()
 
return table
2,339

edits