Moduli:CS1 charts/data

Nga Wikipedia, enciklopedia e lirë

local cat_base_name;
local lang_tag_this_wiki = mw.language.getContentLanguage().code;				-- language tag for this wiki
local lang_names_t = mw.language.fetchLanguageNames (lang_tag_this_wiki, 'all');	-- k/v table of language tag (k) and language name (v) pairs

local cfg = mw.loadData ('Moduli:Citation/CS1/Configuration');


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

some maint and error cats have subcategories.  The subcat names are often dynamically created so the parent categories
don't have entries in Module:Citation/CS1/Configuration <error_conditions>.

<subcats_t> is a k/v table where k is the parent category name and v is a sequence table of the parent's subcategory
names (all without namespace prefix)

]]

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',
		},
	}


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

sequence table of maint cats.  Each value is the maint cat's key in Module:Citation/CS1/Configuration <error_conditions>
k/v table.

some cats have subcategories so those categories aren't listed in <error_conditions>.  For those categories not listed
in <error_conditions>, provide the category name without namespace prefix, and include a matching entry in subcats_t
that holds a sequence table of the category's subcats.

bar chart
keyword: maint

]]

local maint_cats_order_t = {													-- categories are listed here in the order in which they are displayed (left to right)
	'maint_archived_copy',														-- Mirëmbajtja CS1: Archived copy si titull
	'maint_bibcode',															-- Mirëmbajtja CS1: Bibcode
	'maint_bot_unknown',														-- Mirëmbajtja CS1: BOT: gjendja e adresës origjinale është e panjohur
	'maint_date_auto_xlated',													-- Mirëmbajtja CS1: Datë e përkthyer automatikisht
	'maint_date_format',														-- Mirëmbajtja CS1: Formati i datës
	'maint_date_year',															-- Mirëmbajtja CS1: Data dhe viti
	'maint_doi_ignore',															-- Mirëmbajtja CS1: Gabime DOI të injoruara
	'maint_doi_inactive',														-- Mirëmbajtja CS1: DOI joaktive
	'maint_doi_inactive_dated',													-- Mirëmbajtja CS1: DOI që nga ...
	'maint_doi_unflagged_free',													-- Mirëmbajtja CS1: DOI i lirë i pashënjuar
	'maint_extra_punct',														-- Mirëmbajtja CS1: Pikësim shtesë
	'maint_isbn_ignore',														-- Mirëmbajtja CS1: Gabime ISBN të injoruara
	'maint_issn_ignore',														-- Mirëmbajtja CS1: Gabime ISSN të injoruara
	'maint_jfm_format',															-- Mirëmbajtja CS1: Formati JFM
	'maint_location',															-- Mirëmbajtja CS1: Vendodhja
	'maint_location_no_publisher',												-- Mirëmbajtja CS1: Mungon shtëpia botuese te vendodhja
	'maint_mr_format',															-- Mirëmbajtja CS1: Formati MR
	'maint_mult_names',															-- Mirëmbajtja CS1: Emra të shumëfishtë
	'maint_numeric_names',														-- Mirëmbajtja CS1: Emra shifrorë
	'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_overridden_setting',													-- Mirëmbajtja CS1: Cilësim i mbishkruar
	'maint_pmc_embargo',														-- Mirëmbajtja CS1: Embargo PMC ka skaduar
	'maint_pmc_format',															-- Mirëmbajtja CS1: Formati PMC
	'maint_postscript',															-- Mirëmbajtja CS1: Passhkrimi
	'maint_ref_duplicates_default',												-- Mirëmbajtja CS1: Citimi referon vetveten
	'maint_unfit',																-- Mirëmbajtja CS1: Adresë e papërshtatshme
	'maint_unknown_lang',														-- Mirëmbajtja CS1: Gjuhë e panjohur
	'maint_untitled',															-- Mirëmbajtja CS1: Botim periodik i patitulluar
	'maint_url_status',															-- Mirëmbajtja CS1: Gjendja e adresës
	'maint_zbl',																-- Mirëmbajtja CS1: Zbl
--	'Mirëmbajtja CS1: Emra shifrorë',											-- has these subcats with assembled names so this cat not in cfg.error_conditions
		subcats_t['Mirëmbajtja CS1: Emra shifrorë'][1],							-- get the assembled name from <subcats_t> so that there is only one copy of the name
		subcats_t['Mirëmbajtja CS1: Emra shifrorë'][2],
		subcats_t['Mirëmbajtja CS1: Emra shifrorë'][3],
		subcats_t['Mirëmbajtja CS1: Emra shifrorë'][4],
		subcats_t['Mirëmbajtja CS1: Emra shifrorë'][5],

--	'Mirëmbajtja CS1: Emra të shumëfishtë',										-- has these subcats with assembled names so this cat not in cfg.error_conditions
		subcats_t['Mirëmbajtja CS1: Emra të shumëfishtë'][1],					-- get the assembled name from <subcats_t> so that there is only one copy of the name
		subcats_t['Mirëmbajtja CS1: Emra të shumëfishtë'][2],
		subcats_t['Mirëmbajtja CS1: Emra të shumëfishtë'][3],
		subcats_t['Mirëmbajtja CS1: Emra të shumëfishtë'][4],
		subcats_t['Mirëmbajtja CS1: Emra të shumëfishtë'][5],
}

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


--[[--------------------------< E R R O R _ C A T S _ T >------------------------------------------------------

sequence table of error cats.  Each value is the error cat's key in Module:Citation/CS1/Configuration <error_conditions
k/v table.

Gabime CS1: Mungon parametri i gjuhës (err_language_missing) is intentionally omitted until the number of articles
in that category has been reduced to a managable level

bar chart
keyword: error

]]

local error_cats_order_t = {													-- categories are listed here in the order in which they are displayed
	'err_accessdate_missing_url',												-- Gabime CS1: Datë aksesimi pa adresë
	'err_apostrophe_markup',					 								-- Gabime CS1: Formatimi
	'err_archive_date_missing_url',												-- Gabime CS1: Adresa e arkivimit
	'err_archive_date_url_ts_mismatch',											-- Gabime CS1: Adresa e arkivimit
	'err_archive_missing_date',													-- Gabime CS1: Adresa e arkivimit
	'err_archive_missing_url',													-- Gabime CS1: Adresa e arkivimit
	'err_archive_url',															-- Gabime CS1: Adresa e arkivimit
	'err_arxiv_missing',														-- Gabime CS1: arXiv
	'err_asintld_missing_asin',													-- Gabime CS1: ASIN TLD
	'err_bad_arxiv',															-- Gabime CS1: arXiv
	'err_bad_asin',																-- Gabime CS1: ASIN
	'err_bad_asin_tld',															-- Gabime CS1: ASIN TLD
	'err_bad_bibcode',															-- Gabime CS1: bibcode
	'err_bad_biorxiv',															-- Gabime CS1: bioRxiv
	'err_bad_citeseerx',														-- Gabime CS1: citeseerx
	'err_bad_date',																-- Gabime CS1: Datat
	'err_bad_doi',																-- Gabime CS1: DOI
	'err_bad_hdl',																-- Gabime CS1: HDL
	'err_bad_isbn',																-- Gabime CS1: ISBN
	'err_bad_ismn',																-- Gabime CS1: ISMN
	'err_bad_issn',																-- Gabime CS1: ISSN
	'err_bad_jfm',																-- Gabime CS1: JFM
	'err_bad_jstor',															-- Gabime CS1: JSTOR
	'err_bad_lccn',																-- Gabime CS1: LCCN
	'err_bad_medrxiv',															-- Gabime CS1: medRxiv
	'err_bad_mr',                                                           	-- Gabime CS1: MR
	'err_bad_oclc',                                                         	-- Gabime CS1: OCLC
	'err_bad_ol',                                                           	-- Gabime CS1: OL
	'err_bad_osti',                                                         	-- Gabime CS1: OSTI
	'err_bad_paramlink',                                                    	-- Gabime CS1: parametri i lidhjes
	'err_bad_pmc',                                                          	-- Gabime CS1: PMC
	'err_bad_pmid',                                                         	-- Gabime CS1: PMID
	'err_bad_rfc',                                                          	-- Gabime CS1: RFC
	'err_bad_s2cid',                                                        	-- Gabime CS1: S2CID
	'err_bad_sbn',                                                          	-- Gabime CS1: SBN
	'err_bad_ssrn',                                                         	-- Gabime CS1: SSRN
	'err_bad_url',																-- Gabime CS1: Adresa
	'err_bad_usenet_id',														-- Gabime CS1: message-id
	'err_bad_zbl',																-- Gabime CS1: ZBL
	'err_bare_url_missing_title',												-- Gabime CS1: Adresë e zhveshur
	'err_biorxiv_missing',														-- Gabime CS1: bioRxiv
	'err_chapter_ignored',														-- Gabime CS1: Janë injoruar kapitujt
	'err_citation_missing_title',												-- Gabime CS1: Mungon titulli
	'err_cite_web_url',															-- Gabime CS1: Mungon adresa
	'err_citeseerx_missing',													-- Gabime CS1: citeseerx
	'err_class_ignored',														-- Gabime CS1: klasa
	'err_contributor_ignored',													-- Gabime CS1: kontribuesi
	'err_contributor_missing_required_param',									-- Gabime CS1: kontribuesi
	'err_deprecated_params',													-- Gabime CS1: Parametra të vjetëruar
	'err_disp_name',															-- Gabime CS1: Parametri display
	'err_doibroken_missing_doi',												-- Gabime CS1: DOI
	'err_embargo_missing_pmc',													-- Gabime CS1: Embargo PMC
	'err_empty_citation',														-- Gabime CS1: Burim bosh
	'err_etal',																	-- Gabime CS1: Përdorim i gabuar i et al.
	'err_extra_text_edition',													-- Gabime CS1: Tekst shtesë: Botimi
	'err_extra_text_issue',														-- Gabime CS1: Tekst shtesë: Numri
	'err_extra_text_pages',														-- Gabime CS1: Tekst shtesë: Faqet
	'err_extra_text_volume',													-- Gabime CS1: Tekst shtesë: Vëllimi
	'err_first_missing_last',													-- Gabime CS1: Mungon emri
	'err_format_missing_url',													-- Gabime CS1: Format pa adresë
	'err_generic_name',															-- Gabime CS1: Emër i përgjithshëm
	'err_generic_title',														-- Gabime CS1: Titull i përgjithshëm
	'err_invalid_param_val',													-- Gabime CS1: Vlerë e palejuar parametri
	'err_invisible_char',														-- Gabime CS1: simbol i padukshëm
--	'err_language_missing',														-- Gabime CS1: Mungon parametri i gjuhës
	'err_medrxiv_missing',														-- Gabime CS1: medRxiv
	'err_missing_name',															-- Gabime CS1: Mungon emri
	'err_missing_periodical',													-- Gabime CS1: Mungon botimi periodik
	'err_missing_pipe',															-- Gabime CS1: Mungon vija ndarëse
	'err_missing_publisher',													-- Gabime CS1: Mungon shtëpia botuese
	'err_numeric_names',														-- Gabime CS1: Emra shifrorë
	'err_param_access_requires_param',											-- Gabime CS1: parametri i aksesimit
	'err_param_has_ext_link',													-- Gabime CS1: Lidhjet e jashtme
	'err_param_unknown_empty',													-- Gabime CS1: Parametra të panjohur bosh
	'err_parameter_ignored',													-- Gabime CS1: Parametra të palejuar
	'err_parameter_ignored_suggest',											-- Gabime CS1: Parametra të palejuar
	'err_periodical_ignored',													-- Gabime CS1: Botime periodike të injoruara
	'err_redundant_parameters',													-- Gabime CS1: Parametra të tepërt
	'err_script_parameter',														-- Gabime CS1: Parametrat script
	'err_ssrn_missing',															-- Gabime CS1: SSRN
	'err_text_ignored',															-- Gabime CS1: Parametra të pa emëruar
	'err_trans_missing_title',													-- Gabime CS1: titull i përkthyer
	'err_vancouver',															-- Gabime CS1: Stili Vankuver
	'err_wikilink_in_url'														-- Gabime CS1: Konflikt URL-wikilink
	}

local error_cats_t = {};
for _, cat in ipairs (error_cats_order_t) do
	if cfg.error_conditions[cat] then
		table.insert (error_cats_t, cfg.error_conditions[cat].category);		-- fetch the category name from Module:Citation/CS1/Configuration
	else
		table.insert (error_cats_t, cat);										-- use plaintext cat else
	end
end

--[[--------------------------< L A N U A G E _ C A T S _ T >--------------------------------------------------

create category names (without namespace) from a base name using ISO 639-1 (two character) tags and associated
language names known to MediaWiki

pie chart
keyword: lang

]]

local language_cats_t = {
	'Gabime CS1: Mungon parametri i gjuhës',
	'Mirëmbajtje CS1: Gjuhë e panjohur',
	'Vetitë CS1: Burime në gjuhë me kod ISO 3 shkronjor',
	}

cat_base_name = 'Vetitë CS1: Burime në ';										-- the categoies all begin with this base name
for tag, lang in pairs (lang_names_t) do										-- loop through a k/v table of language tag (k) / language name (v) pairs
	if 2 == #tag then															-- ISO 639-1 codes only
		table.insert (language_cats_t, table.concat ({cat_base_name, lang, ' (', tag, ')'}));	-- create category name from base name, languange name, and tag
	end
end


--[[--------------------------< S C R I P T _ L A N G _ C A T S _ T >------------------------------------------

create category names (without namespace) from a base name using tags defined in Module:Citation/CS1 and using
matching language names from MediaWiki

pie chart
keyword: script

]]

local script_lang_cats_t = {};

cat_base_name = 'Vetitë CS1: Vlera në ';										-- the categories all begin with this base name
for _, tag in ipairs (cfg.script_lang_codes) do
	table.insert (script_lang_cats_t, table.concat ({cat_base_name, lang_names_t[tag], ' (', tag, ')'}));	-- create category name from base name, languange name, and tag
end


local page_title = mw.title.getCurrentTitle().prefixedText;						-- namespace and name


--[[--------------------------< B A R _ C H A R T _ C O L O R S >----------------------------------------------

these colors from Stampa:Grafiku i kategorive të gabimeve CS1 (64 colors).  This series of caolors is used for
both pie and bar charts top down, left to right (bar) largest slice to smallest (pie)

]]

local chart_colors_t = {
	'Red',
	'GreenYellow',
	'SlateBlue',
	'Silver',
	'Maroon',
	'Yellow',
	'Olive',
	'Lime',
	'Green',
	'Brown',
	'Teal',
	'Blue',
	'Navy',
	'Fuchsia',
	'Purple',
	'ForestGreen',
	'Tomato',
	'LightSeaGreen',
	'RosyBrown',
	'DarkOliveGreen',
	'MediumVioletRed',
	'Olivedrab',
	'Hotpink',
	'Indigo',
	'Gold',
	'LawnGreen',
	'Peru',
	'BlueViolet',
	'OrangeRed',
	'RoyalBlue',
	'DimGrey',
	'Chartreuse',
	'Chocolate',
	'Orange',
	'Plum',
	'IndianRed',
	'MediumAquamarine',
	'Tan',
	'LightSalmon',
	'LightSlategrey',
	'Magenta',
	'Firebrick',
	'DarkGoldenRod',
	'SpringGreen',
	'Khaki',
	'YellowGreen',
	'DarkOrange',
	'LightCoral',
	'DarkSlateGray',
	'Crimson',
	'SteelBlue',
	'MediumSeaGreen',
	'DeepPink',
	'LightSkyBlue',
	'Thistle',
	'BlanchedAlmond',
	'Burlywood',
	'DarkViolet',
	'LimeGreen',
	'OldLace',
	'Black',
	'Palevioletred',
	'Lightsteelblue',
	'Moccasin',
	}


--[[--------------------------< E X P O R T E D   T A B L E S >------------------------------------------------
]]

return {
	bar_chart_delimiter = ';';													-- changing this will break stuff
	bar_chart_units_suffix = '_faqe';

	chart_colors_t = chart_colors_t,											-- exported sequence tables
	error_cats_t = error_cats_t,
	language_cats_t = language_cats_t,
	maint_cats_t = maint_cats_t,
	script_lang_cats_t = script_lang_cats_t,
	subcats_t = subcats_t,
	
	keyword_cat_map_t = {														-- map keyword to data table
		error = error_cats_t,
		lang = language_cats_t,
		maint = maint_cats_t,
		script = script_lang_cats_t,
		},
	
	keyword_x_legends_map_t = {													-- map keyword to x legends; bar charts only
		error = 'Gabime CS1',
		maint = 'Mirëmbajtja CS1',
		},
	
	keyword_label_map_t = {
		lang = 'Gjuhë CS1',
		script = 'Vetitë CS1: Vlera në gjuhë me shkronja jo latine',
		},
	
	--------------------
	error_cats_order_t = error_cats_order_t,									-- exported for the purpose of category list maintenance
	maint_cats_order_t = maint_cats_order_t 
}