Wikipedysta:Persino/Gadget-DodatkiSkrypt3.js/Aktualizacja.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.
//var DodatkiSkrypt=DodatkiSkrypt ||new Array();
DodatkiSkrypt.Aktualizacja=new Array;
DodatkiSkrypt.Aktualizacja.AktualizacjaStron=function(fullname,kategoria_pozycji){
var fullname=((!fullname)?(DodatkiSkrypt.Info.page.fullname.replace(/[_\s]+/g," ")):fullname);
var tabcat=undefined;
var kategoria_pozycji=((!kategoria_pozycji)?('Strony z błędami skryptów'/*'Kategorie'*/):kategoria_pozycji);
var prefix_kategorii_pozycji="Kategoria:";
var muteks_aktualizacja_stron=new DodatkiSkrypt.Muteks();
var strona_aktualna=undefined;
var strona_aktualna_powtarzanie=undefined;
this.PustaEdycjaStrony=function(title){
var params={
action: 'edit',
title: title,
appendtext: '',
nocreate: true,
format: 'json',
smaxage: 600,
maxage: 600,
prop: 'info|revisions',
};
return DodatkiSkrypt.api.ZadaniaApi(params,'csrf').DodatkiSkryptThen(function(data){console.log("Udało się zaaktualizować stronę: "+title);return Promise.resolve();}).DodatkiSkryptCatch(function(data){console.log("Nie udało się zaaktualizować strony: "+title,"Kod błędu: "+data);return Promise.reject();});
};
this.OdswiezanieStrony=function(title){
return DodatkiSkrypt.api.ZadaniaApi({
action: 'purge',
titles: title,
format: 'json',
smaxage: 600,
maxage: 600,
prop: 'info|revisions',
}).DodatkiSkryptThen(function(data){console.log("Udało się odświeżyć stronę: "+title);return Promise.resolve();}).DodatkiSkryptCatch(function(data){console.log("Nie udało się odświeżyć strony: "+title,"Kod błędu: "+data);return Promise.reject();});
};
this.PustaEdycjaIOdswiezanieStrony=function(title){
var zmienna_this=this;
return zmienna_this.PustaEdycjaStrony(title).DodatkiSkryptThen(function(){
return zmienna_this.OdswiezanieStrony(title).DodatkiSkryptThen(function(){return Promise.resolve();}).DodatkiSkryptCatch(function(){return Promise.reject();});
}).DodatkiSkryptCatch(function(){return Promise.reject();});;
};
this.AktualizacjaCzlonkowKategorii=function(kategoria){
var tab_promise=new Array();
var this_zmienne=this;
var czy_tak=null;
return DodatkiSkrypt.api.ZadaniaApi({
action: 'query',
list: 'categorymembers',
cmtitle: kategoria,
cmtype: 'file|page|subcat',
cmlimit: 500,
format: 'json',
smaxage: 600,
maxage: 600,
}).DodatkiSkryptThen(function(data){
var tab_promise=new Array();
var category = data.query.categorymembers;
for (var cat in category){
var title=category[cat].title;
if(title==fullname){
$(document).DodatkiSkryptReady(function(data){
if((!strona_aktualna)||(strona_aktualna_powtarzanie)){
tabcat=tabcat||DodatkiSkrypt.Kategorie.StworzTabliceKategoriiZCatLinks();
var czy_istnieje_blad=tabcat[kategoria_pozycji];
if(czy_istnieje_blad){
czy_tak=true;
tab_promise.push(this_zmienne.PustaEdycjaIOdswiezanieStrony(title));
tabcat=undefined;
}
strona_aktualna=true;
}
},null,muteks_aktualizacja_stron);
}else{
czy_tak=true;
tab_promise.push(this_zmienne.PustaEdycjaIOdswiezanieStrony(title));
}
}
return Promise.allSettled(tab_promise).DodatkiSkryptThen(function(){return Promise.resolve(czy_tak);}).DodatkiSkryptCatch(function(){return Promise.reject(czy_tak);});
}).DodatkiSkryptCatch(function(data){return Promise.reject();});
};
this.AktualizacjaAktualnejStrony=function(){
var czy_tak=null;
var wlasciwe=document.querySelector(":root > body:not(.ns-special)");
if(wlasciwe!==null){
var aktualizacja_strony=document.querySelector('#mw-content-text .mw-parser-output .mw-aktualizacja-strony');
if(aktualizacja_strony!==null){
var this_zmienne=this;
return $(document).DodatkiSkryptReady(function(data){
tabcat=tabcat||DodatkiSkrypt.Kategorie.StworzTabliceKategoriiZCatLinks();
if(tabcat[kategoria_pozycji]){czy_tak=true;tabcat=undefined;}
var promise=this_zmienne.PustaEdycjaIOdswiezanieStrony(fullname);
strona_aktualna=true;
return promise.DodatkiSkryptThen(function(){return Promise.resolve(czy_tak);}).DodatkiSkryptCatch(function(){return Promise.reject(czy_tak);});
},null,muteks_aktualizacja_stron);
}else{
var this_zmienne=this;
return $(document).DodatkiSkryptReady(function(data){
if(!strona_aktualna){
tabcat=tabcat||DodatkiSkrypt.Kategorie.StworzTabliceKategoriiZCatLinks();
var promise;
if(tabcat[kategoria_pozycji]){
promise=this_zmienne.PustaEdycjaIOdswiezanieStrony(fullname);
czy_tak=true;
tabcat=undefined;
strona_aktualna=true;
return promise.DodatkiSkryptThen(function(){return Promise.resolve(czy_tak);}).DodatkiSkryptCatch(function(){return Promise.reject(czy_tak);});
}else{
strona_aktualna=true;
return Promise.resolve(czy_tak);
}
}
return Promise.resolve(czy_tak);
},null,muteks_aktualizacja_stron);
}
}
return Promise.resolve(czy_tak);
};
this.PowtarzanieAktualizacji=function(){
strona_aktualna_powtarzanie=true;
var aktualizacja_strony_nie_powtarzanie=document.querySelector('#mw-content-text .mw-parser-output .aktualizacja_strony_nie_powtarzanie');
if(!aktualizacja_strony_nie_powtarzanie){
var this_zmienne=this;
var pelna_nazwa_pozycji=prefix_kategorii_pozycji+kategoria_pozycji;
$(document).DodatkiSkryptSetInterval(function(){
const promise1=this_zmienne.PustaEdycjaIOdswiezanieStrony(pelna_nazwa_pozycji);
const promise2=this_zmienne.AktualizacjaCzlonkowKategorii(pelna_nazwa_pozycji);
return Promise.allSettled([promise1,promise2]).DodatkiSkryptThen(function(dane){
var czy_tak=dane[1];
if(czy_tak){
return this_zmienne.PustaEdycjaIOdswiezanieStrony(pelna_nazwa_pozycji);
}
}).DodatkiSkryptCatch(function(){return Promise.reject();});
}, 1000*10*60);
}
};
this.AktualizacjaStronyAktualnejIStronyKategorii=function(){
var this_zmienna=this;
var pelna_nazwa_pozycji=prefix_kategorii_pozycji+kategoria_pozycji;
if(pelna_nazwa_pozycji!=fullname){
const promise1=this_zmienna.PustaEdycjaIOdswiezanieStrony(pelna_nazwa_pozycji);
const promise2=this_zmienna.AktualizacjaAktualnejStrony();
const promise3=this_zmienna.AktualizacjaCzlonkowKategorii(pelna_nazwa_pozycji);
return Promise.allSettled([promise1,promise2,promise3]).DodatkiSkryptThen(function(dane){
var czy_tak=dane[1]||dane[2];
if(czy_tak){
return this_zmienna.PustaEdycjaIOdswiezanieStrony(pelna_nazwa_pozycji);
}
}).DodatkiSkryptCatch(function(){});
}else{
const promise1=this_zmienna.PustaEdycjaIOdswiezanieStrony(pelna_nazwa_pozycji);
const promise2=this_zmienna.AktualizacjaCzlonkowKategorii(pelna_nazwa_pozycji);
return Promise.allSettled([promise1,promise2]).DodatkiSkryptThen(function(dane){
var czy_tak=dane[1];
if(czy_tak){
return this_zmienna.PustaEdycjaIOdswiezanieStrony(pelna_nazwa_pozycji);
}
}).DodatkiSkryptCatch(function(){});
}
};
};
DodatkiSkrypt.Libre.Zmienne["CzekajNaZbiórZmiennych"](DodatkiSkrypt.Info,new Array("page")).DodatkiSkryptThen(function(){
DodatkiSkrypt.aktualizacja=new DodatkiSkrypt.Aktualizacja.AktualizacjaStron();
var promise=DodatkiSkrypt.aktualizacja.AktualizacjaStronyAktualnejIStronyKategorii();
return Promise.all([promise]).DodatkiSkryptThen(function(){
return DodatkiSkrypt.aktualizacja.PowtarzanieAktualizacji();
});
}).DodatkiSkryptCatch(function(){});