Przejdź do zawartości

Moduł:Wiki/interwiki

Z Wikibooks, biblioteki wolnych podręczników.
 Dokumentacja modułu [stwórz] [odśwież]
local s={};
s.globalne_kody_projektu_z_identyfikatorami_danej_wiki_1={
   ["w"]="wiki",
   ["b"]="wikibooks",
   ["wikt"]="wiktionary",
   ["q"]="wikiquote",
   ["s"]="wikisource",
   ["voy"]="wikivoyage",    	
   ["n"]="wikinews",
   ["v"]="wikiversity",    
};
s.globalne_kody_projektu_z_identyfikatorami_danej_wiki_2={
   ["commons"]="commonswiki",
   ["wikispecies"]="specieswiki", 
   ["d"]="wikidatawiki",
   ["mw"]="mediawikiwiki",
   ["m"]="metawiki",
   ["wikimania"]="wikimaniawiki",
};
--funkcje
local p={};
p["KodyProjektówAngielskichProjektówSiostrzanych"]=function()
  local przestrzenie_alternatywne={["wikipedia"]="w",["wikibooks"]="b",["wiktionary"]="wikt",["wikiquote"]="q",["wikisource"]="s",["wikivoyage"]="voy",["wikinews"]="n",["wikiversity"]="v",["commons"]="c",["wikispecies"]="species",["wikidata"]="d",["meta"]="m",["wikimania"]="wikimania",["wikimedia"]="wmf",["incubator"]="incubator",["wikitech"]="wikitech",};
  return przestrzenie_alternatywne;
end;
p["TablicaKodówProjektów"]=function()
	local tabprojekt=mw.site.interwikiMap();
	for kod,element in pairs(tabprojekt)do
		if(mw.language.isKnownLanguageTag(kod))then
			tabprojekt[kod]=nil;
		else
			tabprojekt[kod]=element.url;
		end;
	end;
	return tabprojekt;
end;
p["TablicaAliasówKodówProjektów"]=function()
	local tabprojekt=mw.site.interwikiMap();
	local tablica_aliasow={}
	for kod,element in pairs(tabprojekt)do
		if(not mw.language.isKnownLanguageTag(kod))then
			if(not tablica_aliasow[element.url])then
				tablica_aliasow[element.url]={}
			end;
			tablica_aliasow[element.url][kod]=true;
		end;
	end;
	return tablica_aliasow;
end;
p["TablicaKodówProjektówWikiDanych"]=function()
	local interwikimap=s.interwikimap;
	local interwiki_lingwistyczne=s.globalne_kody_projektu_z_identyfikatorami_danej_wiki_1;
	local interwiki_specjalistyczne=s.globalne_kody_projektu_z_identyfikatorami_danej_wiki_2;
	local tab_lingwistyczne={};
	local tab_specjalistyczne={};
	for kod, wartosc in pairs(interwiki_lingwistyczne)do tab_lingwistyczne[kod]=wartosc; end;
	for kod, wartosc in pairs(interwiki_specjalistyczne)do  tab_specjalistyczne[kod]=wartosc; end;
	local tab_interwiki={lingwistyczne=tab_lingwistyczne,specjalistyczne=tab_specjalistyczne,};
	local function Interwiki(interwiki_jakie,interwiki_nowe)
		for kod, idwiki in pairs(interwiki_jakie)do
			for kod_interwikimap,url in pairs(interwikimap)do
				if(kod_interwikimap==kod)then
					for kod_interwikimap2,url2 in pairs(interwikimap)do
		   				if(kod_interwikimap~=kod_interwikimap2)then
		   					if(url==url2)then
		   						if(not tab_interwiki[interwiki_nowe][kod_interwikimap2])then
		   							tab_interwiki[interwiki_nowe][kod_interwikimap2]=idwiki;
		   						end;
		   					end;
		   				end;
					end;
	   				break;
		   		end;
		   end;
		end;
	end;
	Interwiki(interwiki_lingwistyczne,"lingwistyczne");
	Interwiki(interwiki_specjalistyczne,"specjalistyczne");
	return tab_interwiki;
end;
p["TablicaPozaJęzykowychProjektówSiostrzanych"]=function(frame)
	local wiki_kody_projektu_wikidane=s.tablica_kody_projektu_wikidane;
	local interwikimap=s.interwikimap;
    local interwiki2=wiki_kody_projektu_wikidane.lingwistyczne;
	local tabelka={};
	for kod,element in pairs(interwikimap)do
		if(interwiki2[kod]==nil)then
			tabelka[kod]=element;
		end;
	end;
	return tabelka;
end;
p["TablicaProjektówPozaWikidane"]=function()
	local interwikimap=s.interwikimap;
	local parametry_modul=require("Module:Parametry");
	local wiki_interwiki=s.tablica_kody_projektu_wikidane;
	local globalne_kody_projektu_z_identyfikatorami_danej_wiki_1=wiki_interwiki.lingwistyczne;
	local globalne_kody_projektu_z_identyfikatorami_danej_wiki_2=wiki_interwiki.specjalistyczne;
	local interwikimap_nowy=parametry_modul["TwórzTabelęBezElementówTabel"]{
		                                                                     [1] = interwikimap,
		                                                                     [2] = globalne_kody_projektu_z_identyfikatorami_danej_wiki_1,
		                                                                     [3] = globalne_kody_projektu_z_identyfikatorami_danej_wiki_2,
	                                                                       }
	return interwikimap_nowy;
end;
p["TablicaLokalnychJęzykowychProjektówSiostrzanych"]=function()
	local wiki_interwiki=s.tablica_kody_projektu_wikidane;
	local parametry_modul=require("Module:Parametry");
	local tablokalnejezykowesiostrzane={};
	for kod,_ in pairs(wiki_interwiki.lingwistyczne)do
		tablokalnejezykowesiostrzane[kod]=true;
	end;
	return tablokalnejezykowesiostrzane;
end;
p["TablicaLokalnychProjektówSiostrzanych"]=function()
    local wiki_interwiki=s.tablica_kody_projektu_wikidane;
	local tabela1=wiki_interwiki.lingwistyczne;
	local tabela2=wiki_interwiki.specjalistyczne;
	local parametry_modul=require("Module:Parametry");
	local tabela={};
	for name,_ in pairs(tabela1)do
		tabela[name]=true;
	end;
	for name,_ in pairs(tabela2)do
		tabela[name]=true;
	end;
	return tabela;
end;
--koniec funkcje
--interwiki
s.interwikimap=p["TablicaKodówProjektów"]();
s.tablica_interwiki_siostrzane_angielskie=p["KodyProjektówAngielskichProjektówSiostrzanych"]();
----interprojekty wikidane
s.tablica_kody_projektu_wikidane=p["TablicaKodówProjektówWikiDanych"]();
----interprojekty
s.tablica_nowiki_data=p["TablicaProjektówPozaWikidane"]();
s.tablica_lokalne_lingwistyczne_siostrzane=p["TablicaLokalnychJęzykowychProjektówSiostrzanych"]();
s.tablica_lokalne_siostrzane=p["TablicaLokalnychProjektówSiostrzanych"]();
s.tablica_poza_lingwistyczne_projekty_siostrzane=p["TablicaPozaJęzykowychProjektówSiostrzanych"]();
s.tablica_aliasowe_kody_projektu=p["TablicaAliasówKodówProjektów"]();
return s;