Эстәлеккә күсергә

Модуль:Һайланған мәҡәлә

Википедия — ирекле энциклопедия мәғлүмәте

Для документации этого модуля может быть создана страница Модуль:Һайланған мәҡәлә/doc

local p = {}

-- көнгә ике алыштыру
local function betterRandomSeed()
    local time = os.time()
    local dateTable = os.date("*t", time)
    local hour = dateTable.hour
    local day = dateTable.day  -- Көн
    local period = math.floor(hour / 12)  -- 0 иртән (0-11), 1 кичкә (12-23)
    local hash = mw.uri.encode(tostring(time), "QUERY")  -- хэш
    math.randomseed(period + day + (tonumber(hash:sub(1, 8)) or 0))  -- Seed периодка
end

function p.fakt(frame)
    betterRandomSeed()  -- Инициализация
    
    -- Тулы исемлек (1 - 126)
    local faktlar = {
        'Ҡалып:Баш бит/Һайланған мәҡәлә/1',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/2',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/3',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/4',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/5',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/6',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/7',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/8',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/9',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/10',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/11',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/12',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/13',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/14',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/15',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/16',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/17',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/18',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/19',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/20',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/21',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/22',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/23',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/24',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/25',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/26',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/27',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/28',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/29',
        'Ҡалып:Баш бит/Һайланған мәҡәлә/30',
    }
    
    -- Теләсә кайсын сайлау (1–120)
    local index = math.random(1, #faktlar)
    local templateTitle = faktlar[index]
    
    -- Калыпны тикшерү
    local title = mw.title.new(templateTitle)
    if not title or not title.exists then
        return "'''Хата:''' Калып '" .. templateTitle .. "' табылмады. Исемлекне тикшерегез."  -- Хата
    end
    
    -- Калыпны киңәйтү
    local content = frame:expandTemplate{ title = templateTitle }
    
    -- Кире кайтару: номерлы тест өчен, продада беренче юлны ал
    local debugMode = frame.args.debug or "false"  -- Параметры |debug=yes номерын күрсәтү
    if debugMode == "yes" then
        return index .. " сан чыгарылышы: " .. content
    else
        return content  -- Чыгару
    end
end

return p