Modul:Statîstîkên Wîkîprojeyê/ceribandin
Ev ceribandina modulê ji bo Modul:Statîstîkên Wîkîprojeyê (cudahî) e. |
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, muhimi, sinif, mijar, proje)
local url = mw.uri.fullUrl('Kategorî:' .. category, {
action = 'edit',
preload = "Şablon:Statîstîkên Wîkîprojeyê/proload",
editintro = "Kategoriya nû",
preview = 'no',
summary = "Kategoriya nû",
['preloadparams[1]'] = proje,
['preloadparams[2]'] = muhimi,
['preloadparams[3]'] = sinif,
['preloadparams[4]'] = mijar
})
local label = '<b>çêke</b>'
return '[[:Kategorî:' .. category ..'|'..pagesInCategory..']]' .. ' – ([' .. tostring(url) .. ' ' .. label .. '])'
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 = getHejmar(category)
if not category_link.exists and (muhimi ~= "" or sinif ~= "" or mijar ~= "" or proje ~= "") then
return createCategoryLink(category, pagesInCategory, muhimi, sinif, mijar, proje)
elseif pagesInCategory > 0 then
return "[[:Kategorî:" .. category .. "|" .. pagesInCategory .. "]]"
end
end
-- Function to create wikilink for the category name
local function getHejmar(category)
local pagesInCategory = mw.site.stats.pagesInCategory(category, "pages")
return pagesInCategory
end
local function hesabesinifandi(imp, topic, hemu, project)
local nesinifandiHemu = 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 = getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya Herî zêde")
local besinif_zede = getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya Zêde")
local besinif_navin = getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya Navîn")
local besinif_kem = getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya Kêm")
local besinif_NA = getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya NA")
local besinif_hk = getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya Herî kêm")
local besinif_hk = getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin û muhîmiya Nayê zanîn")
local besinif_hemu = getHejmar("Gotarên " .. (mijar and mijar .. " yên " or "").. "nehatine sinifandin")
local hemu_hz = getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya Herî zêde")
local hemu_zede = getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya Zêde")
local hemu_navin = getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya Navîn")
local hemu_kem = getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya Kêm")
local hemu_NA = getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya NA")
local hemu_hk = getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya Herî kêm")
local hemu_hk = getHejmar("Gotarên " .. (mijar and mijar .. " " or "").. "bi muhîmiya Nayê zanîn")
local hemu_gotar = 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 = 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