Modul:Homokozó/JulesWinnfield-hu/Kkcl-sor

Homokozó/JulesWinnfield-hu/Kkcl-sor[mi ez?] • [dokumentáció: mutat, szerkeszt] • [tesztek: sikeres: 1, sikertelen: 0, kihagyva: 0 (részletek)]

Regressziós tesztelés: Sablon:Kkcl-sor/regressziós tesztelés

local honapok = {'január', 'február', 'március', 'április', 'május', 'június', 
    'július', 'augusztus', 'szeptember', 'október', 'november', 'december'
}

local p = {}

local function _main(args)
    local time1, time2
    if args[1] then
        local time0 = p.firstDayWeekOne(args)
        time1 = time0 + (tonumber(args[2]) - 1) * 3600 * 24 * 7 + (args[3] == '2' and 3.5 or 0) * 3600 * 24
        time2 = time0 + (tonumber(args[2]) - 1) * 3600 * 24 * 7 + (args[3] == '1' and 3   or 6) * 3600 * 24
        if os.time() + 3600 < time1 then return '' end  -- FIXME adjust DST
    elseif not args['dátum'] then
        return ''
    end
    
    local s = '|-\n|'
    local text = ''
    local frame = mw.getCurrentFrame()
    
    text = args['dátum'] or args[2] .. '. hét' .. (args[3] == '1' and ' eleje' or (args[3] == '2' and ' vége' or '')) .. ' (' .. 
        p.formatDate(time1) .. ' – ' .. p.formatDate(time2) .. ')'
    if args['napszám'] then text = text .. frame:extensionTag('ref', args['napszám'] .. ' napon keresztül szerepelt a kezdőlapon.') end
    if args['dátum-mj'] then text = text .. frame:extensionTag('ref', args['dátum-mj']) end
    s = s .. text .. '||'
    
    text = "''nincs megadva''"
    if args.kiemelt == 'igen' then text = '[[Fájl:Cscr-featured.png|20px]]' end
    if args.kiemelt == 'nem'  then text = '[[Fájl:Former featured article candidate.png|20px]]' end
    
    local cikk = args.cikk or args[3] and 
        frame:expandTemplate{title = 'Kezdőlapra került szócikkek listája', args = {args[1], args[2], args[3]}} or 
        frame:expandTemplate{title = 'Szócikkek a kezdőlapon/Lista', args = {args[1], args[2]}}
    
    if args.megvonva then
        text = text .. frame:extensionTag('ref', 'Kiemelt státuszát [[Wikipédia:Javaslat ' .. 
            'kiemeltszócikk-státusz megvonására/' .. cikk .. '|megvonták]] ' .. args.megvonva .. '.')
    end
    if args['kiemelt-mj'] then text = text .. frame:extensionTag('ref', args['kiemelt-mj']) end
    s = s .. text .. '||'
    
    if args['cikk új neve'] then
        text = '[[:' .. args['cikk új neve'] .. '|' .. cikk .. ']] [[Vita:' .. args['cikk új neve'] .. '|<sup>(v)</sup>]]<br>' .. 
            '<small>→ [[:' .. args['cikk új neve'] .. ']]</small>'
    else
        text = '[[:' .. cikk .. ']] [[Vita:' .. cikk .. '|<sup>(v)</sup>]]'
    end
    if args['cikk-mj'] then text = text .. frame:extensionTag('ref', args['cikk-mj']) end
    s = s .. text .. '||'
    
    local argsText = table.concat({args[1], args[2], args[3]}, '-')
    
    local ajanlo = ((not args['ajánló'] and args['ajánló helye'] == 'wp') or 
        (not args.vita and (args['ajánló helye'] == 'wp' or args['ajánló helye'] == 'sl1' or args['ajánló helye'] == 'sl2'))) and 
        frame:expandTemplate{title = 'Szócikkek a kezdőlapon/Lista', args = {args[1], args[2]}}
    text = args['ajánló']
    if not text then
        if args['ajánló helye'] == 'kkc' and args.oldid then
            text = '[' .. tostring(mw.uri.fullUrl('Sablon:KezdőlapKiemeltCikkek', {direction = 'next', oldid = args.oldid})) .. 
                ' az ajánló ' .. (args.dif or '') .. ']'
        elseif args['ajánló helye'] == 'wp' then
            text = '[[Wikipédia:Szócikkek a kezdőlapon/' .. ajanlo .. '|/' .. ajanlo .. ']]'
        elseif args['ajánló helye'] == 'sl1' or args['ajánló helye'] == 'sl2' then
            text = '[[Sablon:KezdőlapKiemeltCikkek/' .. args[1] .. '-' .. args[2] .. '|/' .. args[1] .. '-' .. args[2] .. ']]'
        else
            text = '[[Sablon:Kezdőlap kiemelt cikkei/' .. argsText .. '|/' .. argsText .. ']]'
        end
    end
    if args['ajánló-mj'] then text = text .. frame:extensionTag('ref', args['ajánló-mj']) end
    s = s .. text .. '||'
    
    text = args.vita
    if not text then
        if args['ajánló helye'] == 'kkc' then
            text = ' '
        elseif args['ajánló helye'] == 'wp' or args['ajánló helye'] == 'sl1' then
            text = '[[Wikipédia:Szócikkek a kezdőlapon/' .. ajanlo .. '|vita]]'
        elseif args['ajánló helye'] == 'sl2' then
            text = '[[Wikipédia:Szócikkek a kezdőlapon/' .. args[1] .. '#' .. args[2] .. '. hét (' .. 
                p.formatDate(time1) .. ' – ' .. p.formatDate(time2) .. ') – ' .. ajanlo .. '|vita]]'
        else
            text = '[[Sablonvita:Kezdőlap kiemelt cikkei/' .. argsText .. '|vita]]'
        end
    end
    if args['vita-mj'] then text = text .. frame:extensionTag('ref', args['vita-mj']) end
    s = s .. text .. '\n'
    
    return s
end

function p.formatDate(time)
    local date = os.date('*t', time)
    return honapok[date.month] .. ' ' .. date.day .. '.'
end

function p.firstDayWeekOne(args)
    local firstDay = os.time{year = tonumber(args[1]), month = 1, day = 1, hour = 0}
    return firstDay + ((11 - tonumber(os.date('%w', firstDay))) % 7 - 3) * 3600 * 24
end

function p.main(frame)
    local args
    if frame == mw.getCurrentFrame() then
        args = {}
        for k, v in pairs(frame:getParent().args) do
            if type(k) == 'number' then v = v:match('^%s*(.-)%s*$') end  -- remove whitespace
            if v ~= '' then args[k] = v end
        end
    else
        args = frame or {}
    end
    
    return _main(args)
end

return p