American Horror Story Wiki
American Horror Story Wiki
No edit summary
No edit summary
Line 109: Line 109:
 
table.insert( cat, string.sub(storyCat,0,-3) .. "/Characters/Supporting|" .. HF.episodeCount(frame.args.appearances) .. "]]" )
 
table.insert( cat, string.sub(storyCat,0,-3) .. "/Characters/Supporting|" .. HF.episodeCount(frame.args.appearances) .. "]]" )
 
end
 
end
if not HF.isempty( frame.args.categories ) then
+
-- if not HF.isempty( frame.args.categories ) then
for i, catname in ipairs( HF.explode(';', frame.args.categories) ) do
+
-- for i, catname in ipairs( HF.explode(';', frame.args.categories) ) do
if not HF.isempty( HF.parseCategory(catname) ) then
+
-- if not HF.isempty( HF.parseCategory(catname) ) then
cattoadd = '[[Category:'..HF.parseCategory(catname)..']]'
+
-- cattoadd = '[[Category:'..HF.parseCategory(catname)..']]'
table.insert( cat, HF.parseCategory(cattoadd) )
+
-- table.insert( cat, HF.parseCategory(cattoadd) )
end
+
-- end
end
+
-- end
end
+
-- end
 
local categories = CH{main = table.concat( cat )}
 
local categories = CH{main = table.concat( cat )}
 
return categories
 
return categories

Revision as of 16:53, 23 October 2014

Lua error in Dev:Docbunto at line 944: documentation markup for Docbunto not found in Module:Infobox/AHSW.


local Infobox = {}
local HF = require('Module:HF')
local CH = require('Module:Category handler').main
local L = require('Module:List')
local language = mw.language.new('en')

local data = mw.loadData( 'Module:HF/data' )
local SeasonLinks = data.SeasonLinks

function Infobox.list( field, vars )
    local items = HF.explode( ";", field.Value )
      if ( field.ListType == "horizontal" ) then items.class = "hwrap plainlinks" end
    local list = L.makeList( field.ListType , items )
    return list
end

function Infobox.CharacterFooter( field, vars )
    local footer = ""
    local cat = {}
    local links = {}

    if (string.find(field.Story,';') ~= nil) then 
      local stories = HF.explode(';', field.Story)
      for i, aStory in pairs(stories) do 
        story = aStory
        storyCat = "[[Category:"..story.." (story)]]"
        storyLink = "[[:" .. string.sub(storyCat,3,-3) .. "/Characters|" .. story .. " Characters]]" .. ' '
        table.insert( links, storyLink )
        table.insert( cat, "[[Category:".."Characters]]" )
        table.insert( cat, storyCat )
        table.insert( cat, string.sub(storyCat,0,-3) .. "/Characters]]" )
        if not HF.isempty( field.MainTitleOrder ) then 
          table.insert( cat, string.sub(storyCat,0,-3) .. "/Characters/Main|" .. field.MainTitleOrder .. "]]" )
         elseif HF.episodeCount(field.Episodes) > 2 then
          table.insert( cat, string.sub(storyCat,0,-3) .. "/Characters/Supporting|" .. HF.episodeCount(field.Episodes) .. "]]" )       
        end
       end
    else 
      assert(HF.parseStory(field.Story),"The value for '''story''' is invalid.")
      local story = HF.parseStory(field.Story)
      local storyCat = "[[Category:"..story.." (story)]]"
      local storyLink = "[[:" .. string.sub(storyCat,3,-3) .. "/Characters|" .. story .. " Characters]]"
      table.insert( links, storyLink )
      table.insert( cat, "[[Category:".."Characters]]" )
      table.insert( cat, storyCat )
      table.insert( cat, string.sub(storyCat,0,-3) .. "/Characters]]" )
      if not HF.isempty( field.MainTitleOrder ) then 
        table.insert( cat, string.sub(storyCat,0,-3) .. "/Characters/Main|" .. field.MainTitleOrder .. "]]" )
       elseif HF.episodeCount(field.Episodes) > 2 then
        table.insert( cat, string.sub(storyCat,0,-3) .. "/Characters/Supporting|" .. HF.episodeCount(field.Episodes) .. "]]" )       
      end
    end
    local categories = CH{main = table.concat( cat )}
    footer = footer .. table.concat(links) .. categories
    return footer
end

function Infobox.EpisodeFooter( field, vars )
    local footer = ""
    local cat = {}
    local linktable = {}
    local story = HF.parseStory( field.Story )
    local storyCat = "[[Category:"..story.." (story)]]"
    local episodeLinks = HF.explode( ";", SeasonLinks[story] )
-- IMDb
    if not HF.isempty( field.IMDb ) then 
      table.insert( linktable, "[http://www.imdb.com/title/tt" .. field.IMDb .. "/combined IMDb]" )
    end
-- Links
    for i, link in ipairs( episodeLinks ) do table.insert( linktable, link ) end
    linktable.class = "hwrap plainlinks"
    local list = L.makeList( "horizontal" , linktable )
-- Categories
    if not HF.isempty( field.Sortkey ) then
        table.insert( cat, "[[Category:Episodes|" .. field.Sortkey .. "]]" )
      else
        table.insert( cat, "[[Category:Episodes]]" )
    end
    table.insert( cat, storyCat )
    if not HF.isempty( field.Sortkey ) then
        table.insert( cat, string.sub(storyCat,0,-3) .. "/Episodes|" .. field.Sortkey .. "]]" )
      else
        table.insert( cat, string.sub(storyCat,0,-3) .. "/Episodes]]" )
    end
    table.insert( cat, string.sub(storyCat,0,-3) .. "/Episodes/By Broadcast|" .. field.Episode .. "]]" )
    local categories = CH{main = table.concat( cat )}
-- Output
    footer = footer .. list .. categories
    return footer
end

function Infobox.CharacterMiniHelper( frame )
    local cat = {}
      assert(HF.parseStory(frame.args.story),"The value for '''story''' is invalid.")
      local story = HF.parseStory(frame.args.story)
      local storyCat = "[[Category:"..story.." (story)]]"

      if not HF.isempty( frame.args.sortkey ) then
        table.insert( cat, "[[Category:Characters|" .. frame.args.sortkey .. "]]" )
        table.insert( cat, string.sub(storyCat,0,-3) .. "|" .. frame.args.sortkey .. "]]" )
        table.insert( cat, string.sub(storyCat,0,-3) .. "/Characters|" .. frame.args.sortkey .. "]]" )
      else
        table.insert( cat, "[[Category:Characters]]" )
        table.insert( cat, storyCat )
        table.insert( cat, string.sub(storyCat,0,-3) .. "/Characters]]" )
      end

      if HF.episodeCount(frame.args.appearances) > 2 then
        table.insert( cat, string.sub(storyCat,0,-3) .. "/Characters/Supporting|" .. HF.episodeCount(frame.args.appearances) .. "]]" )
      end
--      if not HF.isempty( frame.args.categories ) then
--       for i, catname in ipairs( HF.explode(';', frame.args.categories) ) do
--         if not HF.isempty( HF.parseCategory(catname) ) then
--           cattoadd = '[[Category:'..HF.parseCategory(catname)..']]'
--           table.insert( cat, HF.parseCategory(cattoadd) )
--         end
--       end
--      end
    local categories = CH{main = table.concat( cat )}
    return categories      
end

return Infobox