Modul:Statîstîkên Wîkîprojeyê
Xuyakirin
Belgekirina modulê[biafirîne]
local p = {}
local function generateCategoryName(muhimi, sinif, mijar, hemu, proje)
local category =""
if sinif ~= '' and muhimi ~= '' then
if sinif == "Nesinifandî" then
category = "Gotarên" .. category .. " " .. (string.len(mijar) > 0 and mijar .. " yên nehatine sinifandin û muhîmiya " or "nehatine sinifandin û muhîmiya ") .. muhimi
else
category = "Gotarên" .. category .. " " .. (string.len(mijar) > 0 and mijar .. " " or "") .. "bi sinifa " .. sinif .. " û muhîmiya " .. muhimi
end
elseif muhimi ~= '' then
category = "Gotarên" .. category .. " " .. (string.len(mijar) > 0 and mijar .. " " or "") .. "bi muhîmiya " .. muhimi
elseif sinif ~= '' then
if sinif == "Nesinifandî" then
category = "Gotarên" .. category .. " " .. (string.len(mijar) > 0 and mijar .. " yên nehatine sinifandin" or "nehatine sinifandin")
else
category = "Gotarên" .. category .. " " .. (string.len(mijar) > 0 and mijar .. " " or "") .. "bi sinifa " .. sinif
end
elseif string.len(proje) > 0 and hemu ~= false then
category = "Hemû rûpelên Wîkîproje " .. proje
elseif hemu ~= false then
category = "Hemû Gotarên Wîkîprojeyan"
end
return category
end
local function createCategoryLink(category, pagesInCategory, proje, sinif, mijar, muhimi)
local preload_temp
if sinif ~= '' and muhimi ~= '' then
preload_temp = "Şablon:Statîstîkên Wîkîprojeyê/preload"
elseif muhimi ~= '' then
preload_temp = "Şablon:WPBannerMeta/templatepage/preloadimp"
elseif sinif ~= '' then
preload_temp = "Şablon:WPBannerMeta/templatepage/preloadqual"
end
local projebisine = proje
local sinifbisine = sinif
local mijarbisine = mijar
local muhimibisine = muhimi
-- Create a table to store class data
local classData = {}
-- Add class data based on the provided information
if proje ~= "" then
proje = string.gsub(proje, " ", "_") -- Replace space with underscore
table.insert(classData, "proje-" .. proje)
end
if sinif ~= "" then
table.insert(classData, "sinif-" .. sinif)
end
if mijar ~= "" then
table.insert(classData, "mijar-" .. mijar)
end
if muhimi ~= "" then
muhimi = string.gsub(muhimi, " ", "_") -- Replace space with underscore
table.insert(classData, "muhimi-" .. muhimi)
end
local divClass = "Wikiproje-ceke"
local divInfo = table.concat(classData, " ")
local divContent = '<div class="' .. divClass .. '">'
if divInfo ~= "" then
divContent = divContent .. '<div class="' .. divInfo .. '">'
end
local url = mw.uri.fullUrl('Kategorî:' .. category, {
action = 'edit',
preload = preload_temp,
editintro = "Kategoriya nû",
preview = 'no',
summary = "Ji [[Wîkîpediya:Wîkîproje|Wîkîprojeyê]] kategorî hat çêkirin",
['preloadparams[1]'] = projebisine,
['preloadparams[2]'] = sinifbisine,
['preloadparams[3]'] = mijarbisine,
['preloadparams[4]'] = muhimibisine
})
local label = '<b>çêke</b>'
divContent = divContent .. '[[:Kategorî:' .. category .. '|' .. pagesInCategory .. ']] – ([' .. tostring(url) .. ' ' .. label .. '])'
if divInfo ~= "" then
divContent = divContent .. '</div>'
end
divContent = divContent .. '</div>'
return divContent
end
-- Function to create wikilink for the category name
local function createWikilink(category, muhimi, sinif, mijar, proje)
local category_link = mw.title.new("Kategorî:" .. category)
local pagesInCategory = p.getHejmar(category)
if not category_link.exists and (muhimi ~= "" or sinif ~= "" or mijar ~= "" or proje ~= "") then
return createCategoryLink(category, pagesInCategory, proje, sinif, mijar, muhimi)
elseif pagesInCategory > 0 then
return "[[:Kategorî:" .. category .. "|" .. pagesInCategory .. "]]"
end
end
function p.getHejmar(category)
local pagesInCategory = mw.site.stats.pagesInCategory(category, "pages")
if pagesInCategory then
return pagesInCategory
end
end
function p.hesabesinifandi(imp, topic, hemu, project)
local nesinifandiHemu = p.getHejmar("Gotarên nehatine sinifandin")
if string.len(topic) > 0 then
mijar = topic
end
if string.len(project) > 0 then
proje = project
end
if string.len(imp) > 0 then
muhimi = imp
end
local besinif_hz = p.getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya Herî zêde")
local besinif_zede = p.getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya Zêde")
local besinif_navin = p.getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya Navîn")
local besinif_kem = p.getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya Kêm")
local besinif_NA = p.getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya NA")
local besinif_hk = p.getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya Herî kêm")
local besinif_hk = p.getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya Nayê zanîn")
local besinif_hemu = p.getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin")
local hemu_hz = p.getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya Herî zêde")
local hemu_zede = p.getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya Zêde")
local hemu_navin = p.getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya Navîn")
local hemu_kem = p.getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya Kêm")
local hemu_NA = p.getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya NA")
local hemu_hk = p.getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya Herî kêm")
local hemu_hk = p.getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya Nayê zanîn")
local hemu_gotar = p.getHejmar("Hemû " .. (proje and "rûpelên Wîkîproje " .. proje or "Gotarên Wîkîprojeyan"))
if muhimi == "Herî zêde" then
return hemu_hz-besinif_hz
elseif muhimi == "Zêde" then
return hemu_zede-besinif_zede
elseif muhimi == "Navîn" then
return hemu_navin-besinif_navin
elseif muhimi == "Kêm" then
return hemu_kem-besinif_kem
elseif muhimi == "NA" then
return hemu_NA-besinif_NA
elseif muhimi == "Herî kêm" then
return hemu_hk-besinif_hk
elseif muhimi == "Nayê zanîn" then
return hemu_hk-besinif_hk
else
return hemu_gotar-besinif_hemu
end
end
function p.sinifandi(frame)
local args = frame:getParent().args
local muhimi = args["muhîmî"] or ""
local mijar = args["mijar"] or ""
local proje = args["proje"] or ""
local hemu = args["hemu"] or ""
local hesab = p.hesabesinifandi(muhimi, mijar, hemu, proje)
return hesab
end
-- Main function
function p.main(frame)
local args = frame:getParent().args
local muhimi = args["muhîmî"] or ""
local sinif = args["sinif"] or ""
local mijar = args["mijar"] or ""
local proje = args["proje"] or ""
local hemu = args["hemu"] or ""
local categoryName = generateCategoryName(muhimi, sinif, mijar, hemu, proje)
local output = createWikilink(categoryName, muhimi, sinif, mijar, proje)
return output
end
return p