Skrypt rozwijający grupy postów na Facebooku, update facebooka

0

Witam,

Do nie dawna (jeszcze w Lipcu) skrypt w pełni działał. Teraz się zepsuł i nie rozumiem czemu :\
używałem go na przeglądarce Waterfox opartej na silniku FireFox

Skrypt:

function patrzpoczatek(str1, str2, n) {
  str1 = str1.substring(0, n);
  str2 = str2.substring(0, n);
  return str1 == str2;
}
var zatrzymaj = 0;
 
    function rozwijajResztePrzeszkadzajacychRzeczy() {
    	if(zatrzymaj!=0)
    	{
    		console.log("Proces zostal zabity");
    		return;
    	}
        //var tab = document.getElementsByTagName("*");
        //var tab = document.getElementsByClassName("_5v47");
        var tab = document.querySelectorAll('._5v47.fss');
        var ile = 0;
        for (var i in tab) {
            if(i % 100 == 0) console.log("jestem na "+i+" pos");
            try { // omin zlosliwy link "Zobacz wiecej wydarzen"
                //if(tab[i].href == null || tab[i].href.length < 5)
                tab[i].click();
                ile++;
            } catch(err) { }
        }
        console.log("rozwijajResztePrzeszkadzajacychRzeczy: WYKONALEM "+ile+" clickow");    
        window.alert("BACKUP GOTOWY! No, prawie. Tera to se kopiuj.");
    }
    function rozwijajZobaczWiecejKomentarzy() {
    	if(zatrzymaj!=0)
    	{
    		console.log("Proces zostal zabity");
    		return;
    	}
        // to tez do "Zobacz wczesniejsze komentarze"
        var tab = document.getElementsByClassName("UFIPagerLink");
        var ile = 0;
        for (var i in tab)
                try {
                   tab[i].click();
                    ile++;
                } catch(err) { }
        console.log("rozwijajZobaczWiecejKomentarzy: WYKONALEM "+ile+" clickow");
        if(ile > 0)
        {
        // rozwijaj dopoki sie da
            setTimeout(rozwijajZobaczWiecejKomentarzy, 2000);
        } 
        else
        {
            setTimeout(rozwijajResztePrzeszkadzajacychRzeczy, 1000);
        }
    }
    function rozwijajZobaczWiecej() {
    	if(zatrzymaj!=0)
    	{
    		console.log("Proces zostal zabity");
    		return;
    	}
        var tab = document.getElementsByClassName("see_more_link");
        var ile = 0;
        for (var i in tab) {
                try {
                   if(tab[i].onclick != null) {
                        ile++;
                        tab[i].onclick();
                    }
                } catch(err) { }
        }
        console.log("rozwijajZobaczWiecej: WYKONALEM "+ile+" clickow");
        setTimeout(rozwijajZobaczWiecejKomentarzy, 1000);
    }
    // na poczatku trzeba w ogole otworzyc komentarze, bo sa schowane
    function otworzKomentarze() {
    	if(zatrzymaj!=0)
    	{
    		console.log("Proces zostal zabity");
    		return;
    	}
        var tab = document.getElementsByClassName("UFIBlingBox");
        var ile = 0;
        for (var i in tab)
                try {
                   tab[i].click();
                    ile++;
                } catch(err) { }
        console.log("otworzKomentarze: WYKONALEM "+ile+" clickow");
        /*if(ile > 0)
        {
        // rozwijaj dopoki sie da
            setTimeout(otworzKomentarze, 2000);
        } 
        else*/
    ////    {
                setTimeout(rozwijajZobaczWiecej, 1000);
        ///}
    }
    var popWys = 0;
    function scrollowanie() {
    	if(zatrzymaj!=0)
    	{
    		console.log("Proces zostal zabity");
    		return;
    	}
 
                var tab = document.querySelectorAll('._5v47.fss');
        var ile = 0;
        for (var i in tab) {
            if(i % 100 == 0) console.log("jestem na "+i+" pos");
            try { // omin zlosliwy link "Zobacz wiecej wydarzen"
                //if(tab[i].href == null || tab[i].href.length < 5)
                tab[i].click();
                ile++;
            } catch(err) { }
        }
 
 
        // to tez do "Zobacz wczesniejsze komentarze"
        var tab = document.getElementsByClassName("UFIPagerLink");
        var ile = 0;
        for (var i in tab)
        {
                try {
                   tab[i].click();
                    ile++;
                } catch(err) { 
                }
        }
    	if(zatrzymaj!=0)
    	{
    		console.log("Proces zostal zabity");
    		return;
    	}
        var tab = document.getElementsByClassName("see_more_link");
        var ile = 0;
        for (var i in tab) {
                try {
                   if(tab[i].onclick != null) {
                        ile++;
                        tab[i].onclick();
                    }
                } catch(err) { }
        }
    	if(zatrzymaj!=0)
    	{
    		console.log("Proces zostal zabity");
    		return;
    	}
        var tab = document.getElementsByClassName("UFIBlingBox");
        var ile = 0;
        for (var i in tab)
        {
                try {
                   tab[i].click();
                    ile++;
                } catch(err) { }
        }
 
    	if(zatrzymaj!=0)
    	{
    		console.log("Proces zostal zabity");
    		return;
    	}
  // to tez do "Zobacz wczesniejsze komentarze"
  var tab = document.getElementsByClassName("UFIReplySocialSentenceLinkText UFIReplySocialSentenceVerified");
      ///  var ile = 0;
        for (var i in tab)
                try {
                   tab[i].click();
            ///        ile++;
                } catch(err) { }
       /// console.log("rozwijajNOdpowiedz: WYKONALEM "+ile+" clickow");
 
 
    	if(zatrzymaj!=0)
    	{
    		console.log("Proces zostal zabity");
    		return;
    	}
        window.scrollTo(0,document.body.scrollHeight);
        if(popWys != document.body.scrollHeight) {
            popWys = document.body.scrollHeight;
    	if(zatrzymaj!=0)
    	{
    		console.log("Proces zostal zabity");
    		return;
    	}
            setTimeout(scrollowanie, 1000); // w razie czego zwiekszyc
        } else setTimeout(otworzKomentarze, 1000);
    }
    setTimeout(scrollowanie, 1000);

Teraz na WaterFox wywala:

TypeError: document.body is undefined[Learn More]

I błąd prowadzi do: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Unexpected type

Na Chrome się co prawda otwiera, ale:

  1. Nie otwiera wszystkiego
  2. Zamyka się zbyt wcześnie
  3. Po kilku otworzeniach zabija proces Chrome - Chrome wywala się z katastroficznym błędem i wszystko przepada ... :(

Ktoś ma pomysł co tu się zmieniło, że to tak nie działa już jak działało?

1

Ale wiesz że document (np document.body) możesz używać tylko w środowiskach które mają dostęp do DOM'u (jak np przeglądarki, kiedy odpalisz JS'a embeddowanego w HTML)? Jeśli sobie odpalisz aplikację w node'zie to żadnego document nie ma i musisz wymyślić inny sposób na interfejs użytkownika.

PS: Nie chce mi się wierzyć że napisałeś kod JS który uruchomiony w chrome'ie go ubija XD

0

PS: Nie chce mi się wierzyć że napisałeś kod JS który uruchomiony w chrome'ie go ubija XD

Zaraz Ci udowodnie. Notoryczna próba odpalenia skryptu na duuuuużej grupie, gdzie mamy kilkanaście tyś DOMów uwali proces...
Na Waterfoxie nie ma tego problemu. Ma on związek także z ilością ram-u idącą na wątek w Chrome. W Chrome jest problem jak wątek przekracza 4 GB, na Waterfox nie.

0

Eh na serio nikt nie chce pomóc?
Najnowsza wersja Waterfox to 56,xxx
Odpaliłem portable 55 to wersja jeszcze z 2017 r.

Odpalam skrypt, który załączyłem w pierwszym poście - DZIAŁA. ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1