Kërceni tek përmbajtja

Moduli:CS1 charts

Page semi-protected
Nga Wikipedia, enciklopedia e lirë
Versioni i datës 2 shtator 2021 01:24 nga Trappist the monk (diskuto | kontribute) (create;)
(ndrysh) ← Version më i vjetër | shikoni versionin e tanishëm (ndrysh) | Version më i ri → (ndrysh)
local cfg = mw.loadData ('Moduli:Citation/CS1/Configuration');

--[[--------------------------< M A I N T _ C A T S _ T >------------------------------------------------------
]]

local maint_cats_t = {															-- categories and the order in which they are displayed
	'maint_unfit',																-- Mirëmbajtja CS1: Adresë e papërshtatshme
	'maint_archived_copy',														-- Mirëmbajtja CS1: Archived copy si titull
	'maint_bot_unknown',														-- Mirëmbajtja CS1: BOT: gjendja e adresës origjinale është e panjohur
	'maint_untitled',															-- Mirëmbajtja CS1: Botim periodik i patitulluar
	'maint_ref_duplicates_default',												-- Mirëmbajtja CS1: Citimi referon vetveten
	'maint_date_year',															-- Mirëmbajtja CS1: Data dhe viti
	'maint_doi_inactive',														-- Mirëmbajtja CS1: DOI joaktive
	'maint_pmc_embargo',														-- Mirëmbajtja CS1: Embargo PMC ka skaduar
	'Mirëmbajtja CS1: Emra shifrorë',											-- has subcats with assembled named so this cat not in cfg.error_conditions
	'Mirëmbajtja CS1: Emra të shumëfishtë',										-- has subcats with assembled named so this cat not in cfg.error_conditions
	'maint_others',																-- Mirëmbajtja CS1: Është përdorur gabimisht parametri i të tjerëve
	'maint_others_avm',															-- Mirëmbajtja CS1: Është përdorur gabimisht parametri i të tjerëve te citimet audiovizuale
	'maint_authors',															-- Mirëmbajtja CS1: Është përdorur parametri i autorëve
	'maint_ref_harv',															-- Mirëmbajtja CS1: Është përdorur ref=harv
	'maint_date_format',														-- Mirëmbajtja CS1: Formati i datës
	'maint_jfm_format',															-- Mirëmbajtja CS1: Formati JFM
	'maint_mr_format',															-- Mirëmbajtja CS1: Formati MR
	'maint_pmc_format',															-- Mirëmbajtja CS1: Formati PMC
	'maint_doi_ignore',															-- Mirëmbajtja CS1: Gabime DOI të injoruara
	'maint_isbn_ignore',														-- Mirëmbajtja CS1: Gabime ISBN të injoruara
	'maint_issn_ignore',														-- Mirëmbajtja CS1: Gabime ISSN të injoruara
	'maint_unknown_lang',														-- Mirëmbajtja CS1: Gjuhë e panjohur
	'maint_postscript',															-- Mirëmbajtja CS1: Passhkrimi
	'maint_extra_punct',														-- Mirëmbajtja CS1: Pikësim shtesë
	'Mirëmbajtja CS1: Tekst shtesë',											-- has subcats with assembled named so this cat not in cfg.error_conditions
	'maint_location',															-- Mirëmbajtja CS1: Vendodhja
	'maint_zbl',																-- Mirëmbajtja CS1: ZBL
	}


--[[--------------------------< S U B C A T S _ T >------------------------------------------------------------
]]

local subcats_t = {
	['Mirëmbajtja CS1: Emra shifrorë'] = {										-- subcats of Mirëmbajtja CS1: Emra shifrorë
		'Mirëmbajtja CS1: Emra shifrorë: lista e autorëve',
		'Mirëmbajtja CS1: Emra shifrorë: lista e intervistuesve',
		'Mirëmbajtja CS1: Emra shifrorë: lista e kontribuesve',
		'Mirëmbajtja CS1: Emra shifrorë: lista e përkthyesve',
		'Mirëmbajtja CS1: Emra shifrorë: lista e redaktorëve',
		},

	['Mirëmbajtja CS1: Emra të shumëfishtë'] = {								-- subcats of Mirëmbajtja CS1: Emra të shumëfishtë
		'Mirëmbajtja CS1: Emra të shumëfishtë: lista e autorëve',
		'Mirëmbajtja CS1: Emra të shumëfishtë: lista e intervistuesve',
		'Mirëmbajtja CS1: Emra të shumëfishtë: lista e kontribuesve',
		'Mirëmbajtja CS1: Emra të shumëfishtë: lista e përkthyesve',
		'Mirëmbajtja CS1: Emra të shumëfishtë: lista e redaktorëve',
		},
	
	['Mirëmbajtja CS1: Tekst shtesë'] = {										-- subcats of Mirëmbajtja CS1: Tekst shtesë
		'Mirëmbajtja CS1: Tekst shtesë: lista e autorëve',
		'Mirëmbajtja CS1: Tekst shtesë: lista e intervistuesve',
		'Mirëmbajtja CS1: Tekst shtesë: lista e kontribuesve',
		'Mirëmbajtja CS1: Tekst shtesë: lista e përkthyesve',
		'Mirëmbajtja CS1: Tekst shtesë: lista e redaktorëve',
		},
	}


--[[--------------------------< S U B C A T _ D A T A _ F E T C H >--------------------------------------------
]]

local function subcat_data_fetch (cat)
	local page_count = 0;

	if subcats_t[cat] then
		local pages_in_cat = {}; 
		for i, subcat in ipairs (subcats_t[cat]) do
			pages_in_cat = mw.site.stats.pagesInCategory (subcat, '*');
			page_count = page_count + pages_in_cat.files + pages_in_cat.pages + pages_in_cat.subcats;
		end
	end
	
	return page_count;
end


--[[--------------------------< G R A P H _ P A R A M S _ C R E A T E >----------------------------------------
]]

local function graph_params_create ()
	local page_counts = {};
	local cat_names = {};

	for i, maint_cat in ipairs (maint_cats_t) do
		local pages_in_cat = {};
		if cfg.error_conditions[maint_cat] then
			maint_cat = cfg.error_conditions[maint_cat].category;				-- fetch the category name from Module:Citation/CS1/Configuration; use plaintext maint_cat else
		end

		cat_names[i] = maint_cat;												-- save a copy of the category name
		
		pages_in_cat = mw.site.stats.pagesInCategory (maint_cat, '*');
		page_counts[i] = pages_in_cat.files + pages_in_cat.pages + pages_in_cat.subcats + subcat_data_fetch (maint_cat);
	end
	
	local out = {};
	
	for i, v in ipairs (maint_cats_t) do
		table.insert (out, table.concat ({' | group ', i, ' = ', page_counts[i]}));
	end

	for i, v in ipairs (maint_cats_t) do
		table.insert (out, table.concat ({' | tooltip ', i, ' = ', cat_names[i], ' ', page_counts[i], '  faqe'}));
	end

	table.insert (out, ' | group names =')
	for i, v in ipairs (maint_cats_t) do
		table.insert (out, table.concat ({'  <!-- Group name ', i, ' -->[[:Kategoria:', cat_names[i], '|', cat_names[i], ']] ', page_counts[i], '  faqe;'}));
	end
	
	local out_str = table.concat (out, '\r\n'):gsub (';$', '');					-- without trailing semicolon
	return out_str;
end


--[[--------------------------< E X P O R T S >----------------------------------------------------------------
]]

return {
	graph_params_create = graph_params_create,
	}