Wikipedysta:Persino/Gadget-StronicowyParser.js/Kategorie.js
Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.
- Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
- Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
- Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
- Opera: Naciśnij klawisze Ctrl+F5.
StronicowyParser.Kategorie=function(){
let zmienna_this=this;
zmienna_this.StworzTabliceKategoriiZCatLinks=async function(){
let tabcat=new Array();
let catlinks=document.querySelector("#bodyContent > #catlinks.catlinks:not(.catlinks-allhidden)");
if(catlinks){
let a=catlinks.getElementsByTagName('a');
if((a!==null)&&(a.length>0)){
let re_category_1=new RegExp("^\\/wiki\\/\\s*(.*)$","g");
let re_category_2=new RegExp("^\\/w\\/index\\.php\\?\\s*title\\s*=\\s*([^&]*).*$","g");
for(let i=0;i<a.length;++i){
let href=a[i].getAttribute('href');
href=StronicowyParser.kodowanie.DecodeHtml(href,true);
let czy_href_1=re_category_1.test(href);
let czy_href_2=re_category_2.test(href);
if(czy_href_1){
href=StronicowyParser.kodowanie.DecodeWiki(href).replace(re_category_1,"$1");
}else if(czy_href_2){
href=StronicowyParser.kodowanie.DecodeWiki(href).replace(re_category_2,"$1");
}
if((czy_href_1)||(czy_href_2)){
if(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g.test(href)){
href=href.replace(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g,"");
tabcat[href]=true;
}
}
}
}
}
return tabcat;
}
zmienna_this.StworzTabliceKategoriiStrony=async function(strona){
let tab=new Array();
await StronicowyParser.api.ZadaniaApi({
action: 'query',
format: 'json',
prop: 'categories',
titles: strona
}).then(function(data){
var pages = data.query.pages;
for(let p in pages){
pages[ p ].categories.forEach(function(cat){
tab[cat.title.replace(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g,"")]=true;
});
}
}).catch(()=>{});
return tab;
};
zmienna_this.StworzTabliceKategoriiIKluczyZDanychWikikodu=async function(data){
let categories=data.parse.categories;
let tab_kategoria=new Array();
for(let i=0;i<categories.length;++i){
let kat=StronicowyParser.kodowanie.DecodeWiki(categories[i]["*"]);
let sortkey=categories[i]["sortkey"];
let tak=true;
for(let j=0;j<tab_kategoria.length;++j){
if(tab_kategoria[j]==kat){
tak=false;
break;
}
}
if(tak){
tab_kategoria[kat]=sortkey||true;
}
}
return tab_kategoria;
}
let muteks_cookie=new StronicowyParser.Muteks();
zmienna_this.StworzCookieDlaKategoriiStrony=async function(data,klucz){
await muteks_cookie.zablokuj();
klucz=klucz||"CzłonkowieKategorii:";
let tabcat=await zmienna_this.StworzTabliceKategoriiIKluczyZDanychWikikodu(data);
let catlinks=await zmienna_this.StworzTabliceKategoriiZCatLinks();
let tab_kat=new Array();
let fullname=StronicowyParser.kodowanie.DecodeWiki(StronicowyParser.pageinfo.fullname);
for(let p in tabcat){
let m="Kategoria:"+p;
tab_kat[tab_kat.length]=m;
let strona_do_kat=mw.cookie.get(m,klucz);
let tab_strona_do_kat=((strona_do_kat)?(strona_do_kat.split("||")):(new Array()));
let tak=true;
for(let i=0;i<tab_strona_do_kat.length;++i){
if(tab_strona_do_kat[i].match(/^[^|]*/g).toString()==fullname){
tak=false;
break;
}
}
if(tak){
let key=tabcat[p];
tab_strona_do_kat[tab_strona_do_kat.length]=fullname+((typeof key == "string")?((key!="")?("|"+key):""):"");
let wartosc=tab_strona_do_kat.join('||');
mw.cookie.set(m,wartosc,{prefix: klucz});
}
}
for(let p in catlinks){tab_kat.push("Kategoria:"+p);};
let dane=mw.cookie.get(fullname,"CzłonkowieStron");
let tab_dane=((dane)?(dane.split('|')):(new Array()));
for(let i=0;i<tab_dane.length;++i){
let kategoria=tab_dane[i];
let kategoria_bez_prefiksu=kategoria.replace(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g,"");
let tak=((!tabcat[kategoria_bez_prefiksu])&&(!catlinks[kategoria_bez_prefiksu]));
if(tak){
let tab_strona_do_kat=TworzTabliceCzasteczekKlucza(kategoria,klucz);
if(tab_strona_do_kat!==null){
for(let j=0;j<tab_strona_do_kat.length;){
strona=tab_strona_do_kat[j];
if(strona[0]==fullname){
tab_strona_do_kat.splice(j,1);
}else{
++j;
}
}
let str="";
for(let k=0;k<tab_strona_do_kat.length;++k){
str=((str!="")?("||"):"")+tab_strona_do_kat[k][0]+(((!tab_strona_do_kat[k][1])||(tab_strona_do_kat[k][1]!=""))?("|"+tab_strona_do_kat[k][1]):"");
}
mw.cookie.set(kategoria,str,{prefix: klucz});
}
}
}
mw.cookie.set(fullname,tab_kat.join('|'),{prefix:"CzłonkowieStron"});
mw.cookie.set("Kategoria:Szablony z niejawnie błędnymi parametrami","Kategoria:Szablony - błędy szablonów||Kategoria:Kategorie||Kategoria:Kategorie dla kategorii|Błędy p||Plik:Burza_mozgu.png||Plik:C.pdf|Ag||Plik:Zanurkuj w Pythonie.pdf|Ah",{prefix:"CzłonkowieKategorii:"});
mw.cookie.set("Kategoria:Szablon kategoria - nieistniejąca kategoria","Wikipedysta:Persino/brudnopis1||Wikipedysta:Persino/brudnopis||Kategoria:Szablony - błędy szablonów||Kategoria:Kategorie||Plik:Burza_mozgu.png||Plik:C.pdf|Ag||Plik:Zanurkuj w Pythonie.pdf|Ah",{prefix:"CzłonkowieKategorii:"});
console.log(mw.cookie.get("Kategoria:Szablony z niejawnie błędnymi parametrami","CzłonkowieKategorii:"),"CCCCC")
muteks_cookie.odblokuj();
}
let zdarzenia_muteks=new StronicowyParser.Muteks();
zmienna_this.DodajSwojeInneZdarzeniaDoObsługiiDrzewaKategorii=async function(){
async function InfoIleKategoria(){
await zdarzenia_muteks.zablokuj();
let id=this;
let czas=0;
function categoryTreeChildrenFun(resolve,reject){
let notice=$(id).parents('.CategoryTreeItem').siblings('.CategoryTreeChildren').children('.CategoryTreeNotice');
if((notice!==null)&&(notice.length>0)){
let komunikat=notice[0].innerHTML;
if((komunikat=="nic nie znaleziono")||(komunikat=="brak podkategorii")){
resolve("Dobrze");
return;
}
}
let el=$(id).parents('.CategoryTreeItem').siblings('.CategoryTreeChildren').children('.CategoryTreeSection');
if ((el!==null)&&(el.length>0)){resolve("Dobrze");}else{
if(czas>=30000){reject("Dobrze");}else{
setTimeout(() => {categoryTreeChildrenFun(resolve,reject);}, 300);
czas+=300;
}
}
}
await new Promise((resolve, reject) => {categoryTreeChildrenFun(resolve,reject);}).then(()=>{}).catch(()=>{});
$('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories .CategoryTreeToggle, body #mw-content-text .mw-parser-output .CategoryTreeTag .CategoryTreeToggle').each((h,element)=>{
$(element).off('click');
});
let item=$(id).parent().parent();
if((item!==null)&&(item.length>0)){
await zmienna_this.ZaaktualizujInformacjeOKategorachiWPrzestrzeniKategorii(item[0]);
await zmienna_this.DodajKategorieDoDrzewaKategoriiWKategoriach(item[0]);
}
$(id).data("ct-loaded",true);
await StronicowyParser.script.LoadScript('ext.categoryTree.styles');
await StronicowyParser.script.LoadScript('ext.categoryTree');
try{
await mw.loader.using( ['ext.categoryTree'], function (){
StronicowyParser.script.requireFile('ext.categoryTree')();
});
}catch(error){};
await $('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories .CategoryTreeToggle, body #mw-content-text .mw-parser-output .CategoryTreeTag .CategoryTreeToggle').on('click', InfoIleKategoria);
zdarzenia_muteks.odblokuj();
}
$('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories .CategoryTreeToggle, body #mw-content-text .mw-parser-output .CategoryTreeTag .CategoryTreeToggle').on('click', InfoIleKategoria);
}
async function IleJakichStron(klucz){
let params = {
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: StronicowyParser.pageinfo.fullname,
text: '{{#invoke:Techniczne|LiczbaStronJakoPozycjeDanejKategorii|kategoria='+klucz+'|typ=subcats|wyspecjalizowana=tak}}',
smaxage: 600,
maxage: 600,
};
let ile_kategorii=0;
await StronicowyParser.api.ZadaniaApi(params).then(function(data){
ile_kategorii=parseInt(data.expandtemplates.wikitext);
}).catch((error) => {});
params = {
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: StronicowyParser.pageinfo.fullname,
text: '{{#invoke:Techniczne|LiczbaStronJakoPozycjeDanejKategorii|kategoria='+klucz+'|typ=pages|wyspecjalizowana=tak}}',
smaxage: 600,
maxage: 600,
};
let ile_stron=0;
await StronicowyParser.api.ZadaniaApi(params).then(function(data){
ile_stron=parseInt(data.expandtemplates.wikitext);
}).catch((error) => {});
params = {
action: 'expandtemplates',
format: 'json',
prop: 'wikitext',
title: StronicowyParser.pageinfo.fullname,
text: '{{#invoke:Techniczne|LiczbaStronJakoPozycjeDanejKategorii|kategoria='+klucz+'|typ=files|wyspecjalizowana=tak}}',
smaxage: 600,
maxage: 600,
};
let ile_plikow=0;
await StronicowyParser.api.ZadaniaApi(params).then(function(data){
ile_plikow=parseInt(data.expandtemplates.wikitext);
}).catch((error) => {});
return new Array(ile_kategorii,ile_stron,ile_plikow);
}
let tab_kategorie_strony_pliki={
0:'subcat',
1:'page',
2:'file',
}
async function TablicaJakichWszystkichStron(klucz,czy_kategorie){
let params = {
action: 'query',
list: 'categorymembers',
cmtitle: klucz,
cmlimit: 5000,
cmprop: 'title|sortkeyprefix',
cmtype: tab_kategorie_strony_pliki[czy_kategorie],
format: 'json',
smaxage: 600,
maxage: 600,
};
let tab=new Array();
await StronicowyParser.api.ZadaniaApi(params).then(function(data){
var category = data.query.categorymembers;
for(let cat in category){
let categorymembers=category[cat];
let title=categorymembers.title;
let sortkey=categorymembers.sortkeyprefix;
tab[cat]=new Array(title.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," "),sortkey);
}
}).catch((error) => {});
return tab;
}
async function SortKey(href,tab_href,tab_strona_href_aktualnej_czasteczkowej_kategorii){
let nazwa_przestrzeni=undefined;
let nazwa_strony=undefined;
let re_kategoria=/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g.test(href);
let re_plik=/^[Pp][Ll][Ii][Kk]:/g.test(href);
if((!re_kategoria)&&(!re_plik)){
const nazwa_przestrzeni_promise=StronicowyParser.nazwy.NAZWAPRZESTRZENI(href);
const nazwa_strony_promise=StronicowyParser.nazwy.NAZWASTRONY(href);
await Promise.all([nazwa_przestrzeni_promise,nazwa_strony_promise]).then((values) =>{
nazwa_przestrzeni=values[0];
nazwa_strony=values[1];
}).catch(()=>{});
}else if(re_kategoria){
nazwa_przestrzeni="";
nazwa_strony=href.replace(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g,"");
}else if(re_plik){
nazwa_przestrzeni="";
nazwa_strony=href.replace(/^[Pp][Ll][Ii][Kk]:/g,"");
}
for(let i=0;i<tab_href.length;++i){
let title=tab_href[i][0];
let sortkey=tab_href[i][1];
if(title==href){
return ((sortkey)?sortkey:"")+nazwa_strony+nazwa_przestrzeni;
}
}
for(let i=0;i<tab_strona_href_aktualnej_czasteczkowej_kategorii.length;++i){
let tab_title=tab_strona_href_aktualnej_czasteczkowej_kategorii[i];
let title=tab_title[0].replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
if(title==href){
return ((tab_title[1])?tab_title[1]:"")+nazwa_strony+nazwa_przestrzeni;
}
}
return nazwa_strony+nazwa_przestrzeni;
}
function TworzTabliceCzasteczekKlucza(href,klucz){
let czasteczka_href=mw.cookie.get(href,(klucz||"CzłonkowieKategorii:"));
if(!czasteczka_href){return null;}
let tab_cookie=new Array();
let tab_strona_do_kat=czasteczka_href.split("||");
for(let i=0;i<tab_strona_do_kat.length;++i){
let rozdziel_cookie=tab_strona_do_kat[i].split("|");
tab_cookie.push(new Array(rozdziel_cookie[0],rozdziel_cookie[1]));
}
return tab_cookie;
}
function CzyTablicaCzasteczekPosiadaKategorie(tablica_stron){
for(let i=0;i<tablica_stron.length;++i){
let kategoria=tablica_stron[i][0];
if(/^[\s_]*[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa][\s_]*:.+$/g.test(kategoria)){
return true;
}
}
return false;
}
zmienna_this.DodajStronyDoAktualnejKategorii=async function(){
let mw_category_generated=document.querySelector('body.ns-14 #mw-content-text .mw-category-generated');
if(!mw_category_generated){return;}
await muteks_cookie.zablokuj();
let tab_strona_do_kat=TworzTabliceCzasteczekKlucza(StronicowyParser.kodowanie.DecodeWiki(StronicowyParser.pageinfo.fullname));
muteks_cookie.odblokuj();
if(!tab_strona_do_kat){return;}
let category=false;let page=false;
if(tab_strona_do_kat.length==0){return;}
let ile_podkategorii=0;
let ile_stron=0;
let ile_plikow=0;
for(let i=0;i<tab_strona_do_kat.length;++i){
let pelna_nazwa_strony=tab_strona_do_kat[i][0].replace(/[\s_]+/g," ");
if(pelna_nazwa_strony.match(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/)){
++ile_podkategorii;
}else if(pelna_nazwa_strony.match(/^[Pp][Ll][Ii][Kk]:/)){
++ile_plikow;
}else{
++ile_stron;
}
}
let mw_pages=mw_category_generated.querySelector('#mw-pages');
let mw_subcategories=mw_category_generated.querySelector('#mw-subcategories');
let media=mw_category_generated.querySelector('#mw-category-media');
function PageLubCategory(mw_,page){
if(!mw_){
let div=document.createElement('div');
div.setAttribute('id',((page)?'mw-pages':'mw-subcategories'));
let h2=document.createElement('h2');
h2.innerHTML=((page)?('Strony w kategorii „'+StronicowyParser.pageinfo.pagename.replace(/[\s_]+/g," ")+'"'):"Podkategorie");
div.appendChild(h2);
let p=document.createElement('p')
p.innerHTML='Poniżej wyświetlono 0 spośród wszystkich 0 '+((page)?'stron':'podkategorii')+' w tej kategorii.';
div.appendChild(p);
let con=document.createElement('div');
con.setAttribute('class','mw-content-ltr');
con.setAttribute('dir','ltr');
con.setAttribute('lang','pl')
let mw_category=document.createElement('div');
mw_category.setAttribute('class','mw-category');
con.appendChild(mw_category);
div.appendChild(con);
if((mw_pages)&&(!page)){
return mw_category_generated.insertBefore(div,mw_pages);
}else{
return mw_category_generated.appendChild(div);
}
}
return mw_;
}
if(((!mw_pages)&&(!mw_subcategories)&&(!media))&&((ile_stron>0)||(ile_podkategorii>0)||(ile_plikow>0))){
mw_category_generated.innerHTML="";
}
let tab_mw_=new Array();
let tab_mw_muteks=new Array();
let tab_co=new Array();
if(ile_stron>0){
if((!mw_pages)&&(ile_stron>0)){
mw_pages=PageLubCategory(mw_pages,true);
}
tab_mw_.push(mw_pages);
tab_co.push(1);
tab_mw_muteks.push(new StronicowyParser.Muteks())
}
if(ile_podkategorii>0){
if((!mw_subcategories)&&(ile_podkategorii>0)){
mw_subcategories=PageLubCategory(mw_subcategories,false);
}
tab_mw_.push(mw_subcategories);
tab_co.push(0);
tab_mw_muteks.push(new StronicowyParser.Muteks())
}
let tab_promise=new StronicowyParser.GenerowaneObiekty();
for(let d=0;d<tab_mw_.length;++d){
let strona_mutkat=new StronicowyParser.Muteks();
tab_promise.wygeneruj(1);
(async function(tab_mw_,tab_mw_muteks,d){
let elem=tab_mw_[d];
if(elem==mw_subcategories){
if(ile_podkategorii>0){
await StronicowyParser.script.LoadScript('ext.categoryTree.styles');
await StronicowyParser.script.LoadScript('ext.categoryTree');
}else{
return;
}
}else if(elem==mw_pages){
if(ile_stron>0){
}else{
return;
}
}
let mutkat=tab_mw_muteks[d];
let mw_category=elem.querySelector('.mw-category');
if(mw_category){
let a_linki_istniejace;
if(elem==mw_subcategories){
a_linki_istniejace=$(elem).find('.mw-category > .mw-category-group > ul > li > .CategoryTreeSection > .CategoryTreeItem > a');
}else if(elem==mw_pages){
a_linki_istniejace=$(elem).find('.mw-category > .mw-category-group > ul > li > a');
}else{
return;
}
let tab_a=new Array();
for(let i=0;i<a_linki_istniejace.length;++i){
let href=StronicowyParser.kodowanie.DecodeHtml(a_linki_istniejace[i].getAttribute('href'),true).replace(/\/wiki\//g,"");
tab_a[href]=true;
}
let tab_href=await TablicaJakichWszystkichStron(StronicowyParser.kodowanie.DecodeWiki(StronicowyParser.pageinfo.fullname),tab_kategorie_strony_pliki[tab_co[d]]);
let tab_klucz_href_poprzednie=undefined;
if(a_linki_istniejace.length>0){
let href_pierwsze=StronicowyParser.kodowanie.DecodeHtml(a_linki_istniejace[0].getAttribute('href'),true).replace(/\/wiki\//g,"");
for(let i=0;i<tab_href.length;++i){
let href_aktualne=tab_href[i][0];
if(href_pierwsze==href_aktualne){
break;
}else{
let sortkey=tab_href[i][1];
tab_klucz_href_poprzednie=new Array(sortkey,href_aktualne);
}
}
}
let klucz_href_poprzednie=undefined;
if(tab_klucz_href_poprzednie){
await (async function (){
let przestrzen;let nazwa_strony;
const przestrzen_promise=StronicowyParser.nazwy.NAZWAPRZESTRZENI(tab_klucz_href_poprzednie[1]);
const nazwa_strony_promise=StronicowyParser.nazwy.NAZWASTRONY(tab_klucz_href_poprzednie[1]);
await Promise.all([przestrzen_promise, nazwa_strony_promise]).then((values) => {
przestrzen=values[0];
nazwa_strony=values[1];
}).catch(()=>{});
klucz_href_poprzednie=tab_klucz_href_poprzednie[0]+nazwa_strony+przestrzen;
})();
}
for(let k=0;k<tab_strona_do_kat.length;++k){
tab_promise.wygeneruj(1);
(async function(tab_strona_do_kat,k){
let klucze=tab_strona_do_kat[k];
async function CzyWchodzic(){
await strona_mutkat.zablokuj();
if(tab_a[klucze[0]]){strona_mutkat.odblokuj();return false;}
tab_a[klucze[0]]=true;
strona_mutkat.odblokuj();
return true;
}
if(await CzyWchodzic()){
if(
(((mw_pages)&&(elem==mw_pages))&&(!/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g.test(klucze[0]))&&(!/^[Pp][Ll][Ii][Kk]:/g.test(klucze[0])))
||((mw_subcategories)&&(elem==mw_subcategories)&&(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g.test(klucze[0])))){
let przestrzen;let nazwa_strony;let pelna_nazwa_strony;
if(elem==mw_pages){
const przestrzen_promise=StronicowyParser.nazwy.NAZWAPRZESTRZENI(klucze[0]);
const nazwa_strony_promise=StronicowyParser.nazwy.NAZWASTRONY(klucze[0]);
await Promise.all([przestrzen_promise, nazwa_strony_promise]).then((values) => {
przestrzen=values[0];
nazwa_strony=values[1];
}).catch(()=>{});
}else{
przestrzen="";
nazwa_strony=klucze[0].replace(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g,"");
}
let sortkey=((klucze[1])?(klucze[1]):"")+nazwa_strony+przestrzen;
let czy_strony=(!klucze[0].match(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g));
let pierwsza_litera=sortkey.substring(0,1).toUpperCase();
async function DodawajKategorieDoStronyKategorii(klucz,pierwsza_litera){
let div=document.createElement('div');
div.setAttribute('class','CategoryTreeSection');
let div2=document.createElement('div');
div2.setAttribute('class','CategoryTreeItem');
let div3=document.createElement('div');
div3.setAttribute('class','CategoryTreeChildren');
div3.style.display='none';
let tab=await IleJakichStron(klucz);
let ile_podkategorii=tab[0];
let ile_stron=tab[1];
let ile_plikow=tab[2];
let span;
if(ile_podkategorii>0){
span=document.createElement('span');
span.setAttribute('class','CategoryTreeBullet')
let span2=document.createElement('span');
span2.setAttribute('class','CategoryTreeToggle CategoryTreeToggleHandlerAttached');
span2.setAttribute('data-ct-title',nazwa_strony);
span2.setAttribute('data-ct-state','collapsed');
span2.setAttribute('title','rozwiń');
span.appendChild(span2);
let spacja=document.createTextNode(" ");
span.appendChild(spacja);
}else{
span=document.createElement('span');
span.setAttribute('class','CategoryTreeEmptyBullet');
}
div2.appendChild(span);
let a=document.createElement('a');
a.setAttribute('href',"/wiki/"+klucz);
a.setAttribute('title', klucz.replace(/[\s_]+/g,"_"));
a.innerHTML=nazwa_strony;
div2.appendChild(a);
let text=document.createTextNode(" ");
div2.appendChild(text);
let span_ile=document.createElement('span');
span_ile.setAttribute('title',"Zawiera "+ile_podkategorii+" podkategorie, "+ile_stron+" stron i "+ile_plikow+" plików")
span_ile.setAttribute('dir','ltr');
if(parseInt(ile_podkategorii)+parseInt(ile_stron)+parseInt(ile_plikow)>0){
let tab=new Array();
if(ile_podkategorii>0){
tab[tab.length]=ile_podkategorii+" kat.";
}
if(ile_stron>0){
tab[tab.length]=ile_stron+" str.";
}
if(ile_plikow>0){
tab[tab.length]=ile_plikow+" pl.";
}
span_ile.innerHTML="("+tab.join(" ,")+")";
}else{
span_ile.innerHTML="(pusta)";
}
div2.appendChild(span_ile);
div.appendChild(div2);
div.appendChild(div3);
if(!pierwsza_litera){
let li=document.createElement('li');
li.appendChild(div)
return li;
}
let divg=document.createElement('div');
divg.setAttribute('class','mw-category-group');
let h3=document.createElement('h3');
h3.innerHTML=pierwsza_litera;
divg.appendChild(h3);
let ul=document.createElement('ul');
let li=document.createElement('li');
li.appendChild(div);
ul.appendChild(li);
divg.appendChild(ul)
return divg;
}
function DodawajStronyDoStronyKategorii(klucz,pierwsza_litera){
if(!pierwsza_litera){
let a=document.createElement('a');
a.setAttribute('href','/wiki/'+klucz);
a.setAttribute('title',klucz.replace(/[\s_]+/g," "));
a.innerHTML=klucz.replace(/[\s_]+/g," ");
let li=document.createElement('li');
li.appendChild(a);
return li;
}
let div=document.createElement('div');
div.setAttribute('class','mw-category-group');
let h3=document.createElement('h3');
h3.innerHTML=pierwsza_litera;
div.appendChild(h3);
let ul=document.createElement('ul');
let li=document.createElement('li');
let a=document.createElement('a');
a.setAttribute('href','/wiki/'+klucz);
a.setAttribute('title',klucz.replace(/[\s_]+/g," "));
a.innerHTML=klucz.replace(/[\s_]+/g," ");
li.appendChild(a);
ul.appendChild(li);
div.appendChild(ul);
return div;
}
await mutkat.zablokuj();
let tak=true;
if(mw_category.innerHTML==""){
let div=czy_strony?DodawajStronyDoStronyKategorii(klucze[0],pierwsza_litera):await DodawajKategorieDoStronyKategorii(klucze[0],pierwsza_litera);
mw_category.appendChild(div);
tak=undefined;
}else{
let mw_category_group=$(mw_category).children();
if((mw_category_group!==null)&&(mw_category_group.length>0)){
for(let i=0;i<mw_category_group.length;++i){
let element=mw_category_group[i];
let litera=element.querySelector('h3').innerHTML;
if(i==0){
if(klucz_href_poprzednie){
let tab1=new Array(sortkey,klucz_href_poprzednie).sort();
let tab2=(new Array(sortkey,litera)).sort();
if((pierwsza_litera!=litera)&&(tab1[1]==sortkey)&&(tab2[0]==sortkey)){
let div=czy_strony?DodawajStronyDoStronyKategorii(klucze[0],pierwsza_litera):await DodawajKategorieDoStronyKategorii(klucze[0],pierwsza_litera);
mw_category.insertBefore(div,element);
tak=undefined;
break;
}
}else{
let tab2=(new Array(sortkey,litera)).sort();
if(tab2[0]==sortkey){
let div=czy_strony?DodawajStronyDoStronyKategorii(klucze[0],pierwsza_litera):await DodawajKategorieDoStronyKategorii(klucze[0],pierwsza_litera);
mw_category.insertBefore(div,element);
tak=undefined;
break;
}
}
}
if(litera!==pierwsza_litera){
let tab1=(new Array(sortkey,litera)).sort();
if(tab1[1]==sortkey){
let element2=mw_category_group[i+1];
if(element2){
let litera2=element2.querySelector('h3').innerHTML;
let tab2=(new Array(sortkey,litera2)).sort();
if(tab2[0]==sortkey){
let div=czy_strony?DodawajStronyDoStronyKategorii(klucze[0],pierwsza_litera):await DodawajKategorieDoStronyKategorii(klucze[0],pierwsza_litera);
mw_category.insertBefore(div,element2)
tak=undefined;
break;
}
}else{
let p_=elem.querySelector('p');
let ile_stron=parseInt(p_.innerHTML.replace(/^([^\d]+)(\d+)([^\d]+)(\d+)([^\d]+)$/g,"$2"));
let ile_wszystkich_stron=parseInt(p_.innerHTML.replace(/^([^\d]+)(\d+)([^\d]+)(\d+)([^\d]+)$/g,"$4"));
if((ile_stron==ile_wszystkich_stron)||((ile_stron<=ile_wszystkich_stron)&&(ile_stron<=200))){
let div=czy_strony?DodawajStronyDoStronyKategorii(klucze[0],pierwsza_litera):await DodawajKategorieDoStronyKategorii(klucze[0],pierwsza_litera);
mw_category.appendChild(div);
tak=undefined;
break;
}
}
}
}else{
let ul=element.querySelector('ul');
let li=$(ul).children();
if((li!==null)&&(li.length>0)){
let poprzedni_klucz=undefined;
for(let j=0;j<li.length;++j){
let a=li[j].querySelector('a');
let href=a.getAttribute('href');
href=StronicowyParser.kodowanie.DecodeHtml(href,true);
href=href.replace(/^\/wiki\//g,"");
async function Li(klucz){
let li=czy_strony?DodawajStronyDoStronyKategorii(klucz,null):await DodawajKategorieDoStronyKategorii(klucz,null);
return li;
}
if(j==0){
group=true;
if(klucz_href_poprzednie){
let klucz_href=await SortKey(href,tab_href,tab_strona_do_kat);
let tab1=(new Array(sortkey,klucz_href)).sort();
let tab2=new Array(sortkey,klucz_href_poprzednie).sort();
if((tab1[0]==sortkey)&&(tab2[1]==sortkey)){
let li2=await Li(klucze[0]);
ul.insertBefore(li2,li[0]);
tak=undefined;
break;
}
}else{
let klucz_href=await SortKey(href,tab_href,tab_strona_do_kat);
let tab1=(new Array(sortkey,klucz_href)).sort();
if(tab1[0]==sortkey){
let li2=await Li(klucze[0]);
ul.insertBefore(li2,li[0]);
tak=undefined;
break;
}
}
}
let klucz_href1=poprzedni_klucz||await SortKey(href,tab_href,tab_strona_do_kat);
if(li[j+1]){
let a2=li[j+1].querySelector('a');
let href2=a2.getAttribute('href');
href2=StronicowyParser.kodowanie.DecodeHtml(href2,true);
href2=href2.replace(/^\/wiki\//g,"")
let klucz_href2=await SortKey(href2,tab_href,tab_strona_do_kat);
poprzedni_klucz=klucz_href2;
let tab1=(new Array(sortkey,klucz_href1)).sort();let tab2=(new Array(sortkey,klucz_href2)).sort();
if((tab1[1]==sortkey)&&(tab2[0]==sortkey)){
let li2=await Li(klucze[0]);
ul.insertBefore(li2,li[j+1]);
poprzedni_klucz=undefined;
tak=undefined;
break;
}else{
poprzedni_klucz=klucz_href2;
}
}else{
let p=elem.querySelector('p');
let ile_stron=parseInt(p.innerHTML.replace(/^([^\d]+)(\d+)([^\d]+)(\d+)([^\d]+)$/g,"$2"));
let ile_wszystkich_stron=parseInt(p.innerHTML.replace(/^([^\d]+)(\d+)([^\d]+)(\d+)([^\d]+)$/g,"$4"));
if((ile_stron==ile_wszystkich_stron)||((ile_stron<=ile_wszystkich_stron)&&(ile_stron<=200))){
let li2=await Li(klucze[0]);
ul.appendChild(li2);
poprzedni_klucz=undefined;
tak=undefined;
break;
}
}
}
}
}
}
}
}
let li_=$(elem).find(':not(.CategoryTreeChildren) li');
if(li_.length>6){
let mw_category=elem.querySelector('.mw-category');
if(!$(mw_category).hasClass('mw-category-columns')){
mw_category.classList.add('mw-category-columns');
}
}
if(!tak){
let p_=elem.querySelector('p');
function replace(s,s1,s2,s3,s4,s5){
return s1+li_.length+s3+(parseInt(s4)+1)+s5;
}
p_.innerHTML=p_.innerHTML.replace(/^([^\d]+)(\d+)([^\d]+)(\d+)([^\d]+)$/g,replace);
}
mutkat.odblokuj();
}
}
tab_promise.zwolnij()
})(tab_strona_do_kat,k);
}
}
tab_promise.zwolnij();
})(tab_mw_,tab_mw_muteks,d);
}
if(ile_plikow>0){
await StronicowyParser.script.LoadScript('mediawiki.page.gallery.styles');
await StronicowyParser.script.LoadScript('mmv');
if(!media){
let div=document.createElement('div');
div.setAttribute('id','mw-category-media');
let h2=document.createElement('h2');
h2.innerHTML='Pliki w kategorii „'+StronicowyParser.pageinfo.pagename.replace(/[\s_]+/g," ")+'”';
div.appendChild(h2);
let p=document.createElement('p');
p.innerHTML='Poniżej wyświetlono 0 spośród wszystkich 0 plików w tej kategorii.';
div.appendChild(p);
let ul=document.createElement('ul');
ul.setAttribute('class','gallery mw-gallery-traditional');
div.appendChild(ul);
mw_category_generated.appendChild(div);
}
let tab_ul_kontener=$("body.ns-14 #mw-content-text .mw-category-generated > #mw-category-media > ul.gallery.mw-gallery-traditional");
if((tab_ul_kontener!==null)&&(tab_ul_kontener.length>0)){
let ul_kontener=tab_ul_kontener[0];
let li=$(ul_kontener).children('li.gallerybox');
async function Li(plik){
let li=document.createElement('li');
li.setAttribute('class','gallerybox')
li.setAttribute('style','width: 155px');
let div=document.createElement('div');
div.setAttribute('style','width: 155px')
div=li.appendChild(div);
let div_thumb=document.createElement('div');
div_thumb.setAttribute('class','thumb')
div_thumb.setAttribute('style','width: 150px;height:150px;');
div_thumb=div.appendChild(div_thumb);
let div_nast=document.createElement('div');
div_nast=div_thumb.appendChild(div_nast);
let url;let width;let urls;let height;let size;let pagecount;let thumburl;
await StronicowyParser.api.ZadaniaApi({
action: 'query',
format: 'json',
prop: 'imageinfo',
iiprop: 'url|size',
iiurlwidth: 85,
titles: plik,
smaxage: 600,
maxage: 600,
}).then(function(data){
let pages=data.query.pages;
for(let p in pages){
let imageinfo=pages[p].imageinfo[0];
url=((imageinfo.thumburl)?(imageinfo.thumburl.replace(/^[Hh][Tt][Tt][Pp][Ss]?:\/\//g,"//")):(imageinfo.url.replace(/^[Hh][Tt][Tt][Pp][Ss]?:\/\//g,"//")));
let urls2=imageinfo.responsiveUrls;
let i=0;
urls=new Array();
for(let p in urls2){
urls[i]=urls2[p].replace(/^[Hh][Tt][Tt][Pp][Ss]?:\/\//g,"//")+" "+p+"x";
++i;
}
width=imageinfo.width;
height=imageinfo.height;
size=imageinfo.size;
pagecount=imageinfo.pagecount;
break;
}
}).catch(()=>{});
let a=document.createElement('a');
a.setAttribute('href',"/wiki/"+plik.replace(/[\s_]+/g,"_"));
a.setAttribute('class','image');
let img=document.createElement('img');
img.setAttribute('width','120');
img.setAttribute('height','114');
img.setAttribute('alt',plik);
if(urls.length>0){
img.setAttribute('srcset',urls.join(" "));
}
img.setAttribute('src',url);
img.setAttribute('decoding','async');
img.setAttribute('data-file-width',width)
img.setAttribute('data-file-height',height)
if(width>height){
let new_height=parseInt((height/width)*120);
img.setAttribute('width',120);
img.setAttribute('height',new_height);
div_nast.setAttribute('style','margin:'+(parseInt((150-new_height)/2))+'px auto')
}else{
let new_width=parseInt((width/height)*120);
img.setAttribute('width',new_width);
img.setAttribute('height',120);
div_nast.setAttribute('style','margin:'+(parseInt((150-120)/2))+'px auto')
}
a.appendChild(img);
div_nast.appendChild(a);
let div_opis=document.createElement('div');
div_opis.setAttribute('class','gallerytext');
div_opis=div.appendChild(div_opis);
a=document.createElement('a')
a.setAttribute('href','/wiki/'+plik);
a.setAttribute('class','galleryfilename galleryfilename-truncate');
a.setAttribute('title',plik.replace(/[\s_]+/g," "));
a.innerHTML=plik.replace(/^[Pp][Ll][Ii][Kk]:/g,"").replace(/[\s_]+/g," ");
div_opis.appendChild(a);
let size_new=0+" B";
if(size/1024<1){
size_new=size+" B";
}else if(size/1024<1024){
size_new=parseInt(size/1024*100)/100+" KB";
}else if(size/1024/1024<1024){
size_new=Math.round(size/1024/1024*100)/100+" MB";
}else if(size/1024/1024/1024<1024){
size_new=Math.round(size/1024/1024/1024*100)/100+" GB";
}else{
size_new=size+" B";
}
let tekst=document.createTextNode(" "+width+" × "+height+((pagecount)?(", "+pagecount+" stron"):"")+"; "+size_new);
div_opis.appendChild(tekst);
return li;
}
tab_promise.wygeneruj(1);
(async function (){
let tab_href=await TablicaJakichWszystkichStron(StronicowyParser.kodowanie.DecodeWiki(StronicowyParser.pageinfo.fullname),tab_kategorie_strony_pliki[2]);
let a_linki_istniejace=li.children('div').children('div.thumb').children('div').children('a');
let tab_klucz_href_poprzednie=undefined;
if(a_linki_istniejace.length>0){
let href_pierwsze=StronicowyParser.kodowanie.DecodeHtml(a_linki_istniejace[0].getAttribute('href'),true).replace(/\/wiki\//g,"");
for(let i=0;i<tab_href.length;++i){
let href_aktualne=tab_href[i][0];
if(href_pierwsze==href_aktualne){
break;
}else{
let sortkey=tab_href[i][1];
tab_klucz_href_poprzednie=new Array(sortkey,href_aktualne);
}
}
}
let klucz_href_poprzednie;
if(tab_klucz_href_poprzednie){
klucz_href_poprzednie=tab_klucz_href_poprzednie[0]+tab_klucz_href_poprzednie[1].replace(/^[Pp][Ll][Ii][Kk]:/g,"");
}
let tab_a=new Array();
for(let i=0;i<a_linki_istniejace.length;++i){
let href=StronicowyParser.kodowanie.DecodeHtml(a_linki_istniejace[i].getAttribute('href'),true).replace(/\/wiki\//g,"");
tab_a[href]=true;
}
let strona_mutkat=new StronicowyParser.Muteks();
let mutplik=new StronicowyParser.Muteks();
let tak=true;
for(let i=0;i<tab_strona_do_kat.length;++i){
let klucze=tab_strona_do_kat[i];
async function CzyWchodzic(){
await strona_mutkat.zablokuj();
if(tab_a[klucze[0]]){strona_mutkat.odblokuj();return false;}
tab_a[klucze[0]]=true;
strona_mutkat.odblokuj();
return true;
}
if(/^[Pp][Ll][Ii][Kk]:/g.test(tab_strona_do_kat[i][0])){
if(await CzyWchodzic()){
await mutplik.zablokuj();
let li=$(ul_kontener).children('li.gallerybox');
let a=li.children('div').children('div.thumb').children('div').children('a');
if((a===null)||(a.length==0)){
let li=await Li(tab_strona_do_kat[i][0]);
li=ul_kontener.appendChild(li);
tak=undefined;
}else{
let tab_plik=tab_strona_do_kat[i];
let klucz=((tab_plik[1])?tab_plik[1]:"")+tab_plik[0].replace(/^[Pp][Ll][Ii][Kk]:/g,"");
let klucz_poprzednie=undefined;
for(let j=0;j<a.length;++j){
let li=$(a[j]).parents('li');
let href=a[j].getAttribute('href').replace(/\/wiki\//g,"");
href=StronicowyParser.kodowanie.DecodeHtml(href,true);
let klucz_href=klucz_poprzednie||await SortKey(href,tab_href,tab_strona_do_kat);
if(j==0){
if(klucz_href_poprzednie){
let tab1=new Array(klucz_href_poprzednie,klucz).sort();
let tab2=new Array(klucz_href,klucz).sort();
if((tab[1]==klucz)&&(tab2[0]==klucz)){
let _li=await Li(tab_strona_do_kat[i][0]);
ul_kontener.insertBefore(_li,li[0]);
tak=undefined;
break;
}
}else{
let tab1=new Array(klucz_href,klucz).sort();
if(tab1[0]==klucz){
let _li=await Li(tab_strona_do_kat[i][0]);
ul_kontener.insertBefore(_li,li[0]);
tak=undefined;
break;
}
}
}
let tab1=new Array(klucz_href,klucz).sort();
if(a[j+1]){
let href2=a[j+1].getAttribute('href').replace(/\/wiki\//g,"");
href2=StronicowyParser.kodowanie.DecodeHtml(href2,true);
let klucz_href2=await SortKey(href2,tab_href,tab_strona_do_kat);
klucz_poprzednie=klucz_href2;
let tab2=new Array(klucz_href2,klucz).sort();
if((tab1[1]==klucz)&&(tab2[0]==klucz)){
let _li=await Li(tab_strona_do_kat[i][0]);
let li=$(a[j+1]).parents('li');
ul_kontener.insertBefore(_li,li[0]);
tak=undefined;
break;
}
}else{
let p=$('body.ns-14 #mw-content-text .mw-category-generated > #mw-category-media > p')[0];
let ile_stron=parseInt(p.innerHTML.replace(/^([^\d]+)(\d+)([^\d]+)(\d+)([^\d]+)$/g,"$2"));
let ile_wszystkich_stron=parseInt(p.innerHTML.replace(/^([^\d]+)(\d+)([^\d]+)(\d+)([^\d]+)$/g,"$4"));
if((ile_stron==ile_wszystkich_stron)||((ile_stron<=ile_wszystkich_stron)&&(ile_stron<=200))){
let _li=await Li(tab_strona_do_kat[i][0]);
ul_kontener.appendChild(_li);
tak=undefined;
break;
}
}
}
}
if(!tak){
function replace(s,s1,s2,s3,s4,s5){
let li=$(ul_kontener).children('li.gallerybox');
return s1+li.length+s3+(parseInt(s4)+1)+s5;
}
let p=$('body.ns-14 #mw-content-text .mw-category-generated > #mw-category-media > p')[0];
p.innerHTML=p.innerHTML.replace(/^([^\d]+)(\d+)([^\d]+)(\d+)([^\d]+)$/g,replace);
}
mutplik.odblokuj();
}
}
}
tab_promise.zwolnij();
})();
}
}
await StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
zmienna_this.ZaaktualizujInformacjeOKategorachiWPrzestrzeniKategorii=async function(item){
let mutkat=new StronicowyParser.Muteks();
let categoryTreebullet=((item==null)?$('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories > * > .mw-category > .mw-category-group > ul > li > .CategoryTreeSection > .CategoryTreeItem'):$(item).siblings('.CategoryTreeChildren').children(".CategoryTreeSection").children(".CategoryTreeItem"));
if((categoryTreebullet!==null)&&(categoryTreebullet.length>0)){
let tab_promise=new StronicowyParser.GenerowaneObiekty();
for(let i=0;i<categoryTreebullet.length;++i){
tab_promise.wygeneruj(1);
(async function(categoryTreebullet,i){
await mutkat.zablokuj();
if(!categoryTreebullet[i].tak){
categoryTreebullet[i].tak=true;
let a=categoryTreebullet[i].querySelector('a');
let href=a.getAttribute('href').replace(/^\/wiki\//g,"");
href=StronicowyParser.kodowanie.DecodeHtml(href,true);
await muteks_cookie.zablokuj();
let tab_strona_href=TworzTabliceCzasteczekKlucza(href);
muteks_cookie.odblokuj();
if(tab_strona_href!==null){
if(tab_strona_href.length>0){
let ile_kategorii=0;let ile_plikow=0;let ile_stron=0;
for(let k=0;k<tab_strona_href.length;++k){
let strona=tab_strona_href[k][0];
if(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g.test(strona)||/^[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]:/g.test(strona)){
++ile_kategorii;
}else if(/^[Pp][Ll][Ii][Kk]:/g.test(strona)||/^[Ff][Ii][LL][Ee]:/g.test(strona)){
++ile_plikow;
}else{
++ile_stron;
}
}
let dzieci=$(categoryTreebullet[i]).children();
let span_ile;
if(dzieci.length>0){
span_ile=categoryTreebullet[i].lastChild;
let title=span_ile.getAttribute('title');
if(/^[^\d]+(\d+)[^\d]+(\d+)[^\d]+(\d+)[^\d]+$/g.test(title)){
ile_kategorii=parseInt(title.replace(/^[^\d]+(\d+)[^\d]+(\d+)[^\d]+(\d+)[^\d]+$/g,"$1"))+ile_kategorii;
ile_stron=parseInt(title.replace(/^[^\d]+(\d+)[^\d]+(\d+)[^\d]+(\d+)[^\d]+$/g,"$2"))+ile_stron;
ile_plikow=parseInt(title.replace(/^[^\d]+(\d+)[^\d]+(\d+)[^\d]+(\d+)[^\d]+$/g,"$3"))+ile_plikow;
}
};
let span;
if(ile_kategorii>0){
span=document.createElement('span');
span.setAttribute('class','CategoryTreeBullet')
let span2=document.createElement('span');
span2.setAttribute('class','CategoryTreeToggle CategoryTreeToggleHandlerAttached');
span2.setAttribute('data-ct-title',href.replace(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g,"").replace(/[\s_]+/g,"_"));
span2.setAttribute('data-ct-state','collapsed');
span2.setAttribute('title','rozwiń');
span.appendChild(span2);
}else{
span=document.createElement('span');
span.setAttribute('class','CategoryTreeEmptyBullet');
}
let span_full=$(a).parent().find('span').first();
if((span_full!==null)&&(span_full.length>0)){
span_full[0].outerHTML=span.outerHTML;
}
if(dzieci.length>2){
span_ile.setAttribute('title',"Zawiera "+ile_kategorii+" podkategorie, "+ile_stron+" stron i "+ile_plikow+" plików")
span_ile.setAttribute('dir','ltr');
if(parseInt(ile_kategorii)+parseInt(ile_stron)+parseInt(ile_plikow)>0){
let tab=new Array();
if(ile_kategorii>0){
tab[tab.length]=ile_kategorii+" kat.";
}
if(ile_stron>0){
tab[tab.length]=ile_stron+" str.";
}
if(ile_plikow>0){
tab[tab.length]=ile_plikow+" pl.";
}
span_ile.innerHTML="("+tab.join(", ")+")";
}else{
span_ile.innerHTML="(pusta)";
}
}
}
}
categoryTreebullet[i].tak=true;
}
mutkat.odblokuj();
tab_promise.zwolnij();
})(categoryTreebullet,i);
}
await StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
}
zmienna_this.DodajKategorieDoDrzewaKategoriiWKategoriach=async function(item){
if(!item.tak_drzewo_kategorii){
item.tak_drzewo_kategorii=true;
let a_linki_istniejace=$(item).siblings('.CategoryTreeChildren').children('.CategoryTreeSection').children('.CategoryTreeItem').children('a');
let tab_a=new Array();
for(let i=0;i<a_linki_istniejace.length;++i){
let href=StronicowyParser.kodowanie.DecodeHtml(a_linki_istniejace[i].getAttribute('href'),true).replace(/\/wiki\//g,"");
tab_a[href]=true;
}
let a=item.querySelector('a');
let href=a.getAttribute('href').replace(/^\/wiki\//g,"");
href=StronicowyParser.kodowanie.DecodeHtml(href,true);
await muteks_cookie.zablokuj();
let tab_strona_href_aktualnej_czasteczkowej_kategorii=TworzTabliceCzasteczekKlucza(href);
muteks_cookie.odblokuj();
if(tab_strona_href_aktualnej_czasteczkowej_kategorii!==null){
if(tab_strona_href_aktualnej_czasteczkowej_kategorii.length>0){
let tab_href=await TablicaJakichWszystkichStron(href,true);
let mutkat=new StronicowyParser.Muteks();let strona_mutkat=new StronicowyParser.Muteks();
let tab_promise=new Array();
for(let j=0;j<tab_strona_href_aktualnej_czasteczkowej_kategorii.length;++j){
tab_promise.wygeneruj(1);
(async function(tab_strona_href_aktualnej_czasteczkowej_kategorii,j,tab_href){
let tab_strona=tab_strona_href_aktualnej_czasteczkowej_kategorii[j];
let nazwa_strony=tab_strona[0].replace(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g,"");
let klucz=((tab_strona[1])?tab_strona[1]:"")+nazwa_strony;
async function CzyWchodzic(){
await strona_mutkat.zablokuj();
if(tab_a[tab_strona[0]]){strona_mutkat.odblokuj();return false;}
tab_a[tab_strona[0]]=true;
strona_mutkat.odblokuj();
return true;
}
if(await CzyWchodzic()){
if(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g.test(tab_strona[0])||/^[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]:/g.test(tab_strona[0])){
await muteks_cookie.zablokuj();
let tab_strona_href=TworzTabliceCzasteczekKlucza(tab_strona[0]);
muteks_cookie.odblokuj();
await mutkat.zablokuj();
let $link=$($(item).find('.CategoryTreeToggle')[0]).data('ct-loaded');
let child_puste=item.querySelector('.CategoryTreeEmptyBullet');
if(child_puste){
let span=document.createElement('span');
span.setAttribute('class','CategoryTreeBullet')
let span2=document.createElement('span');
span2.setAttribute('class','CategoryTreeToggle CategoryTreeToggleHandlerAttached');
span2.setAttribute('data-ct-title',nazwa_strony);
span2.setAttribute('data-ct-state','collapsed');
span2.setAttribute('title','rozwiń');
span.appendChild(span2);
let spacja=document.createTextNode(" ");
span.appendChild(spacja);
child_puste.outerHTML=span.outerHTML;
}
let categorytreesection=document.createElement('div');
categorytreesection.setAttribute('class','CategoryTreeSection');
let categorytreeitem=document.createElement('div');
categorytreeitem.setAttribute('class','CategoryTreeItem');
let tab=await IleJakichStron(tab_strona[0]);
let ile_kategorii=tab[0];let ile_stron=tab[1];let ile_plikow=tab[2];
if(tab_strona_href){
for(let k=0;k<tab_strona_href.length;++k){
let strona_kategorii=tab_strona_href[k][0];
if(/^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]:/g.test(strona_kategorii)){
++ile_kategorii;
}else if(/^[Pp][Ll][Ii][Kk]:/g.test(strona_kategorii)){
++ile_plikow;
}else{
++ile_stron;
}
}
}
function InfoItem(item) {
let tekst=document.createTextNode(' ');
let span_tekst=document.createElement('span');
span_tekst.setAttribute('dir','ltr');
span_tekst.setAttribute('title',"Zawiera "+ile_kategorii+" podkategorii, "+ile_stron+" stron i "+ile_plikow+" plików")
if((ile_kategorii==0)&&(ile_stron==0)&&(ile_plikow==0)){
span_tekst.innerHTML="(pusta)";
}else{
tekst_ile=((ile_kategorii>0)?(ile_kategorii+" kat."):"");
tekst_ile=tekst_ile+((tekst_ile!="")?((ile_stron>0)?", ":""):"")+((ile_stron>0)?(ile_stron+" str."):"");
tekst_ile=tekst_ile+((tekst_ile!="")?((ile_plikow>0)?", ":""):"")+((ile_plikow>0)?(ile_plikow+" pl."):"");
span_tekst.innerHTML="("+tekst_ile+")";
}
item.appendChild(tekst);
item.appendChild(span_tekst);
}
if(ile_kategorii>0){
let span=document.createElement('span');
span.setAttribute('class','CategoryTreeBullet')
let span2=document.createElement('span');
span2.setAttribute('class','CategoryTreeToggle CategoryTreeToggleHandlerAttached');
span2.setAttribute('data-ct-title',nazwa_strony.replace(/[\s_]+/g,"_"));
span2.setAttribute('data-ct-state','collapsed');
span2.setAttribute('title','rozwiń');
span.appendChild(span2);
let spacja=document.createTextNode(" ");
span.appendChild(spacja);
categorytreeitem.appendChild(span);
}else{
let span=document.createElement('span');
span.setAttribute('class','CategoryTreeEmptyBullet');
categorytreeitem.appendChild(span);
let spacja=document.createTextNode(" ");
categorytreeitem.appendChild(spacja);
}
let a=document.createElement('a')
a.setAttribute('href',"/wiki/"+tab_strona[0]);
a.setAttribute('title',tab_strona[0]);
a.innerHTML=nazwa_strony;
categorytreeitem.appendChild(a);
InfoItem(categorytreeitem);
categorytreesection.appendChild(categorytreeitem);
let children_nowe=document.createElement('div');
children_nowe.setAttribute('class','CategoryTreeChildren');
children_nowe.style.display="none";
categorytreesection.appendChild(children_nowe);
let a_linki_istniejace_aktualne=$(item).siblings('.CategoryTreeChildren').children('.CategoryTreeSection').children('.CategoryTreeItem').children('a');
if((child_puste)||(a_linki_istniejace_aktualne.length==0)){
let children_nowe=$(item).siblings('.CategoryTreeChildren')[0];
children_nowe.innerHTML="";
children_nowe.appendChild(categorytreesection);
}else{
if((a_linki_istniejace_aktualne!==null)&&(a_linki_istniejace_aktualne.length>0)){
klucz_href_poprzednie=undefined;
for(let s=0;s<a_linki_istniejace_aktualne.length;++s){
let href=a_linki_istniejace_aktualne[s].getAttribute('href');
href=StronicowyParser.kodowanie.DecodeHtml(href,true);
href=href.replace(/\/wiki\//g,"");
let klucz_href=await SortKey(href,tab_href,tab_strona_href_aktualnej_czasteczkowej_kategorii);
if(s==0){
let posortowane=(new Array(klucz,klucz_href)).sort();
if(posortowane[0]==klucz){
let child=$(a_linki_istniejace_aktualne[s]).parent('.CategoryTreeItem').parent('.CategoryTreeSection').parent('.CategoryTreeChildren');
if((child!==null)&&(child.length>0)){
child[0].insertBefore(categorytreesection,$(a_linki_istniejace_aktualne[s]).parent().parent()[0]);
break;
}
}else if(s+1==a_linki_istniejace_aktualne.length){
let child=$(a_linki_istniejace_aktualne[s]).parent().parent().parent();
if((child!==null)&&(child.length>0)){
child[0].appendChild(categorytreesection);
break;
}
}
klucz_href_poprzednie=klucz_href;
}else if(s+1==a_linki_istniejace_aktualne.length){
let posortowane=(new Array(klucz,klucz_href)).sort();
if(posortowane[1]==klucz){
let child=$(a_linki_istniejace_aktualne[s]).parent().parent().parent();
if((child!==null)&&(child.length>0)){
child[0].appendChild(categorytreesection);
break;
}
}else{
let child=$(a_linki_istniejace_aktualne[s]).parent().parent().parent();
if((child!==null)&&(child.length>0)){
child[0].insertBefore(categorytreesection,$(a_linki_istniejace_aktualne[s]).parent().parent()[0]);
break;
}
}
klucz_href_poprzednie=klucz_href;
}else{
let tab1=(new Array(klucz,klucz_href_poprzednie)).sort();let tab2=(new Array(klucz,klucz_href)).sort();
if((tab1[1]==klucz)&&(tab2[0]==klucz)){
let child=$(a_linki_istniejace_aktualne[s]).parent().parent().parent();
if((child!==null)&&(child.length>0)){
child[0].insertBefore(categorytreesection,$(a_linki_istniejace_aktualne[s]).parent().parent()[0]);
break;
}
}
klucz_href_poprzednie=klucz_href;
}
}
}
}
mutkat.odblokuj();
}
}
tab_promise.zwolnij();
})(tab_strona_href_aktualnej_czasteczkowej_kategorii,j,tab_href);
}
await StronicowyParser.CzekajNaZakaczenie(tab_promise);
}
}
}
}
zmienna_this.DodajDoCategoryTreeElementy=async function(){
let item=$("#mw-content-text .mw-parser-output .CategoryTreeTag > .CategoryTreeSection > .CategoryTreeItem");
if((item!==null)&&(item.length>0)){
await StronicowyParser.script.LoadScript('ext.categoryTree.styles');
await StronicowyParser.script.LoadScript('ext.categoryTree');
for(let i=0;i<item.length;++i){
await zmienna_this.DodajKategorieDoDrzewaKategoriiWKategoriach(item[i]);
}
}
}
zmienna_this.DolaczOdNowaZdarzeniaSystemoweKategorii=async function(zdarzenia,categorytree){
let oryginal=document.querySelector('body.ns-14 #mw-content-text .mw-category-generated > #mw-subcategories');
if((categorytree)&&(oryginal!==null)){
let kopia=oryginal.cloneNode(true);
oryginal.outerHTML=kopia.outerHTML;
}
let oryginalcategorytree=$("#mw-content-text .mw-parser-output .CategoryTreeTag");
if((oryginalcategorytree!==null)&&(oryginalcategorytree.length>0)){
for(let i=0;i<oryginalcategorytree.length;++i){
let kopia=oryginalcategorytree[i].cloneNode(true);
oryginalcategorytree[i].outerHTML=kopia.outerHTML;
}
}
if(zdarzenia){
await StronicowyParser.script.LoadScript('ext.categoryTree.styles');
await StronicowyParser.script.LoadScript('ext.categoryTree');
try{
await mw.loader.using( ['ext.categoryTree'], await async function (){
StronicowyParser.script.requireFile('ext.categoryTree')();
});
}catch(error){};
}
}
}
StronicowyParser.LinkiKategorii=function(){
let tab_cat;
let kat=new StronicowyParser.Kategorie();
this.PobierzKategorieStrony=async function(){
tab_cat=await kat.StworzTabliceKategoriiZCatLinks();
}
this.AnalizaKategorii=async function(data){
await StronicowyParser.muteks.zablokuj();
let categories=data.parse.categories;
if(categories.length>0){
let bodycontent=document.querySelector('#bodyContent');
let czy_catlinks=document.querySelector('#bodyContent > #catlinks.catlinks-allhidden');
let czy_catlinks_nieukryte=document.querySelector("#bodyContent > #catlinks.catlinks:not(.catlinks-allhidden)");
if(!czy_catlinks_nieukryte){
let catlinks=document.createElement('div');
catlinks.setAttribute('id',"catlinks");
catlinks.setAttribute("class","catlinks");
catlinks.setAttribute("data-mw","interface")
if(czy_catlinks){
czy_catlinks.outerHTML=catlinks.outerHTML;
}else{
bodycontent.appendChild(catlinks);
}
}
let catlinks=document.querySelector("#bodyContent > #catlinks.catlinks");
if(catlinks){
let catlinks_normal=document.querySelector("#bodyContent > #catlinks.catlinks #mw-normal-catlinks");
let catlinks_hidden=document.querySelector("#bodyContent > #catlinks.catlinks #mw-hidden-catlinks");
for(let l=0;l<categories.length;++l){
let cattab=categories[l];
let cat=cattab["*"].replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
if(!tab_cat[cat]){
tab_cat[cat]=true;
let a=document.createElement('a');
a.href="/wiki/Kategoria:"+StronicowyParser.kodowanie.EncodeHtml(cat);
a.innerHTML=cat;
if((cattab["missing"]!=null)&&(cattab["missing"]=="")){
a.classList.add('new');
a.setAttribute('title',"Kategoria:"+cat+" (strona nie istnieje)");
}else{
a.setAttribute('title',"Kategoria:"+cat);
}
let li=document.createElement('li');
li.innerHTML=a.outerHTML;
if((cattab["hidden"]!=null)&&(cattab["hidden"]=="")){
if(!catlinks_hidden){
let catlinks_hidden_div=document.createElement('div');
catlinks_hidden_div.setAttribute("id","mw-hidden-catlinks");
catlinks_hidden_div.setAttribute("class","mw-hidden-catlinks mw-hidden-cats-user-shown");
catlinks_hidden_div.innerHTML="Ukryta kategoria: <ul></ul>";
let catlinkihtml=document.querySelector("#bodyContent .catlinks");
catlinks_hidden=catlinkihtml.appendChild(catlinks_hidden_div);
}
let ul=catlinks_hidden.querySelector('ul');
ul.appendChild(li);
}else{
if(!catlinks_normal){
let catlinks_normal_div=document.createElement('div');
catlinks_normal_div.setAttribute("id","mw-normal-catlinks");
catlinks_normal_div.setAttribute("class","mw-normal-catlinks");
let a=document.createElement('a');
a.setAttribute('href',"/wiki/Specjalna:Kategorie");
a.setAttribute('title',"Specjalna:Kategorie");
a.innerHTML="Kategoria";
catlinks_normal_div.appendChild(a);
catlinks_normal_div.innerHTML=catlinks_normal_div.innerHTML+":";
let ul=document.createElement('ul');
catlinks_normal_div.appendChild(ul);
catlinks_normal=catlinks.insertBefore(catlinks_normal_div,catlinks.firstChild);
}
let ul=catlinks_normal.querySelector('ul');
ul.appendChild(li);
}
}
}
let action_view=document.querySelector('body.action-view');
if(action_view){
kat.StworzCookieDlaKategoriiStrony(data,null);
}
}
}else{
let action_view=document.querySelector('body.action-view');
if(action_view){
kat.StworzCookieDlaKategoriiStrony(data,null);
}
}
StronicowyParser.muteks.odblokuj();
}
}
StronicowyParser.kategorie=new StronicowyParser.Kategorie();
(async function(){
let ns_14=document.querySelector("body.ns-14 #mw-content-text .mw-category-generated, body.ns-14 #mw-content-text .mw-parser-output .CategoryTreeTag");
if(ns_14){
await StronicowyParser.kategorie.DolaczOdNowaZdarzeniaSystemoweKategorii(false,true);
await StronicowyParser.kategorie.DodajStronyDoAktualnejKategorii();
const promise1=StronicowyParser.kategorie.DodajDoCategoryTreeElementy();
const promise2=StronicowyParser.kategorie.ZaaktualizujInformacjeOKategorachiWPrzestrzeniKategorii();
await Promise.all([promise1,promise2]).then((values) => {}).catch(()=>{});
await StronicowyParser.kategorie.DolaczOdNowaZdarzeniaSystemoweKategorii(true,true);
await StronicowyParser.kategorie.DodajSwojeInneZdarzeniaDoObsługiiDrzewaKategorii();
}else{
let categorytreetag=document.querySelector("body:not(.ns-14) #mw-content-text .mw-parser-output .CategoryTreeTag");
if(categorytreetag){
await StronicowyParser.kategorie.DolaczOdNowaZdarzeniaSystemoweKategorii(false,false);
await StronicowyParser.kategorie.DodajDoCategoryTreeElementy();
await StronicowyParser.kategorie.DolaczOdNowaZdarzeniaSystemoweKategorii(true,false);
await StronicowyParser.kategorie.DodajSwojeInneZdarzeniaDoObsługiiDrzewaKategorii();
}
}
})();