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(){});