İçeriğe atla

Modül:Aya göre ölümler

Sanarşiv, sanat ansiklopedisi
16.26, 16 Ocak 2026 tarihinde Deniz (mesaj | katkılar) tarafından oluşturulmuş 473 numaralı sürüm (TR Wikipedia üzerinden Sanarsiv uyumlu otomatik taşıma.)
(fark) ← Önceki sürüm | Güncel sürüm (fark) | Sonraki sürüm → (fark)

Bu modül için bir Modül:Aya göre ölümler/belge belgelendirmesi oluşturabilirsiniz

local p = {}
local mw = require('mw')

function p.getMonthNames(frame)
	local args = frame.args
	local pageName = args[1]
	local monthNumber = args[2]
	
	local pageTitleDate = string.match(pageName, "[a-zA-ZçÇğĞıİöÖşŞüÜ]+ [0-9]+")
	mw.log(pageTitleDate)
	local pageTitleMonthName = p.getStringBeforeDelimiter(pageTitleDate, " ")
	local pageTitleYear = p.getStringAfterDelimiter(pageTitleDate, " ")
	
	local monthOrder = {
        "Aralık2", "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran",
        "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık", "Ocak2"
    }
    
    local monthIndex = {}
    for i, month in ipairs(monthOrder) do
        monthIndex[month] = i
    end
    
    local currentIndex = monthIndex[pageTitleMonthName]
    local nextIndex = currentIndex + 1
    local prevIndex = currentIndex - 1
    mw.log(currentIndex)
    
    if monthNumber == "-1" then
    	return string.match(monthOrder[prevIndex], "[a-zA-ZçÇğĞıİöÖşŞüÜ]+")
    end
    
    if monthNumber == "0" then
    	return monthOrder[currentIndex]
    end
    
    if monthNumber == "1" then
    	return string.match(monthOrder[nextIndex], "[a-zA-ZçÇğĞıİöÖşŞüÜ]+")
    end
    
    if monthNumber == "y" then
    	if currentIndex == 2 then
    		return tostring(tonumber(pageTitleYear) - 1 )
    	else
    		return pageTitleYear
    	end
    end
    
    if monthNumber == "y2" then
    	if currentIndex == 13 then
    		return tostring(tonumber(pageTitleYear) + 1 )
    	else
    		return pageTitleYear
    	end
    end
    
    if monthNumber == "y3" then
    	return pageTitleYear
    end
end

function p.getDaysInMonthAndString(frame)
	local args = frame.args
	local pageName = args[1]
	
	local pageTitleDate = p.getStringBeforeDelimiter(pageName, "'")
	local pageTitleMonthName = p.getStringBeforeDelimiter(pageTitleDate, " ")
	local pageTitleYear = p.getStringAfterDelimiter(pageTitleDate, " ")
	mw.log(pageTitleYear)
	
    local monthDays = {
        Ocak = 31,
        ["Şubat"] = 28,
        ["Mart"] = 31,
        ["Nisan"] = 30,
        ["Mayıs"] = 31,
        ["Haziran"] = 30,
        ["Temmuz"] = 31,
        ["Ağustos"] = 31,
        ["Eylül"] = 30,
        ["Ekim"] = 31,
        ["Kasım"] = 30,
        ["Aralık"] = 31
    }

    local days = monthDays[pageTitleMonthName]
    
    mw.log(days)
    mw.log(pageTitleMonthName)

    local daysString = ""
    for i = 1, days do
        daysString = daysString .. "\n* [[#" .. i .. "|" .. i .. "]]"
    end

    return daysString
end

function p.getStringBeforeDelimiter(fullString, delimiter)
	fullString = mw.uri.decode(fullString)
    local startPos, endPos = string.find(fullString, delimiter, 1, true)

    if startPos then
        return string.sub(fullString, 1, startPos - 1)
    else
        return fullString
    end
end

function p.getStringAfterDelimiter(fullString, delimiter)
	fullString = mw.uri.decode(fullString)
    local startPos, endPos = string.find(fullString, delimiter, 1, true)

    if startPos then
        return string.sub(fullString, endPos + 1)
    else
        return fullString
    end
end

return p