FANDOM


-- By: Сибирский Смотритель
-- Ukrainian translation: Skyflurry
local p = {}
local d = require('Module:DingScript/data')
 
function p.icon( frame )
    return frame.args["Тип"] ~= nil and tostring(
        mw.html.create('div')
        :cssText("float: left; position: absolute")
        :wikitext(d.icons[mw.text.split(mw.ustring.lower(frame.args["Тип"]), ",")[1]])
    ) or ''
end
 
function p.introduce( frame )
    if frame.args["Вступ"] ~= nil then
        local cmonpages = {"Блюдо", "Їжа", "Напій", "Кулінарний інгредієнт"}
        local itemInGame = frame.args["Гра"]
        if itemInGame ~= nil then itemInGame = mw.text.split(frame.args["Гра"], ",") end
        local mainArticle = ''
        local enName
        local itemType
 
        if frame.args["Тип"] ~= nil then
            for _, v in pairs(cmonpages) do
                if v == mw.text.split(mw.ustring.lower(frame.args["Тип"]), ",")[1] then
                    local gameOfType = d.gamenames[mw.ustring.lower(frame.args["Гра"])] ~= nil and d.gamenames[mw.ustring.lower(frame.args["Гра"])] or nil
                    mainArticle = (gameOfType ~= nil) and ("*''Основна стаття: "..d.setLink("Їжа ("..gameOfType..")").."''<br/><br/>\n") or ("*''Основна стаття: "..d.setLink("Їжа").."''<br/><br/>\n")
                    break
                end
            end
        end
 
        if frame.args["Назва англійською"] ~= nil then
            enName = " (ориг. ''"..d.setLink("w:c:elderscrolls:"..frame.args["Назва англійською"], frame.args["Назва англійською"]).."'')"--..d.setLink("en:"..frame.args["Назва англійською"])
        else
            enName = ''
        end
 
        if frame.args["Тип"] ~= nil then
            itemType = mw.text.listToText( mw.text.split(mw.ustring.lower(frame.args["Тип"]), ',') )
        else
            itemType = "Предмет"
        end
 
        if itemInGame ~= nil then
            local gamelink = d.gamelinks[mw.ustring.lower(itemInGame[1])]
            if (#itemInGame == 1) and (gamelink ~= nil) then
                itemInGame = " "..gamelink
            elseif (#itemInGame > 1) and (gamelink ~= nil) then
                itemInGame = " у декількох іграх серії "..d.setLink("The Elder Scrolls", "''The Elder Scrolls''")
            else
                itemInGame = ''
            end
        else
            itemInGame = ''
        end
 
        return mainArticle.."<b>"..(frame.args["Назва"] or mw.title.getCurrentTitle().fullText).."</b>"..enName.." — "..itemType..itemInGame.."."
    else
        return ''
    end
end
 
function p.categorize( frame )
    local returnThis = d.setLink('Category:Предмет')..'\n'
    local hasSmallAdds = false
    local types = frame.args["Тип"] and mw.text.split(mw.ustring.lower(frame.args["Тип"]), ",") or {}
    local games = frame.args["Гра"] and mw.text.split(mw.ustring.lower(frame.args["Гра"]), ",") or {}
 
    for _, v in ipairs(games) do
        if d.smallAdds[v] ~= nil then
            hasSmallAdds = true
            returnThis = returnThis
                            ..d.setLink("Category:"..d.smallAdds[v])
                            ..d.setLink("Category:Предмет ("..d.smallAdds[v]..')')..'\n'
        else
            returnThis = returnThis
                            ..d.setLink("Category:"..d.cgamenames[v])
                            ..d.setLink("Category:Предмет ("..d.cgamenames[v]..')')..'\n'
        end
    end
    if hasSmallAdds then returnThis = returnThis..d.setLink("Category:"..d.cgamenames.oblivion)..'\n' end
 
    for _, v in ipairs(types) do
        local categoryNames = d.categoryNames[v]
 
        for _, category in ipairs(categoryNames) do
            local havePlus = string.find(category, '%+')
            local value = havePlus and tostring( category:gsub("%+", '') ) or category
 
            if category ~= nil then
                returnThis = returnThis..d.setLink("Category:"..value)..'\n'
            end
 
            if havePlus then
               for _, v3 in ipairs(games) do
                   if d.smallAdds[v3] == nil then
                        -- Thx http://stackoverflow.com/questions/20284515/capitalize-first-letter-of-every-word-in-lua
                        returnThis = returnThis..d.setLink("Category:"..value.." ("..v3:gsub("(%l)(%w+)", function(a,b) return string.upper(a)..b end)..")")..'\n'
                    end
               end
            end
        end
    end
 
    return returnThis
end
 
function p.after( frame )
   return p.introduce( frame )..'<div style="display:none; display: inline-block;">'..p.categorize( frame )..'</div>'
end
 
return p

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Відвідайте інші вікіпроекти на Вікія!

Випадкова вікі