Skip to content

Instantly share code, notes, and snippets.

@gmolveau
Last active January 5, 2025 04:26
Facebook reset script

Facebook Reset

Ce script permet de vider le flux d'activité d'un compte facebook, sans supprimer les amis ni quitter les groupes. Ce script ne supprime pas les messages messenger.

Lancer via la console

  • se rendre sur facebook.com > Profil > Historique personnel
    • fonctionne aussi dans les autres catégories comme sondages ou historique des recherches
  • ouvrir la console
  • copier-coller l'intégralité du script ci-dessous
  • appuyer sur la touche Enter
function scrollBottom(){ window.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight) }
function containsAndVisible(selector, text) {
	return [].find.call(document.querySelectorAll(selector), function(element){
		return RegExp(text).test(element.textContent) && (element.offsetWidth > 0 && element.offsetHeight > 0);
	});
}
function containsAndVisibleAll(selector, text) {
	return [].filter.call(document.querySelectorAll(selector), function(element){
		return RegExp(text).test(element.textContent) && (element.offsetWidth > 0 && element.offsetHeight > 0);
	});
}
setInterval(function() {
	var post = document.querySelector("ul.uiList._4kg > li");
	if (post == null) {
		scrollBottom();
		containsAndVisibleAll('div', 'activité').slice(-1).pop().click();
		return;
	}
	if (post.offsetHeight ===0) {
		post.parentNode.removeChild(post);
		return;
	}
	var button = post.querySelector("._6a._6b.uiPopover.rfloat a span");
	if (button == null) {
		console.log("pas d'action possible pour :", post.querySelector("._42ef").innerText);
		post.parentNode.removeChild(post);
		return;
	}
	button.click();
	setTimeout(function() {
		var supprimer = containsAndVisible('span', 'Supprimer');
		if (supprimer !== undefined) {
			supprimer.click();
			setTimeout(function () {
				containsAndVisible('button', 'Supprimer').click();
				setTimeout(function () {
					containsAndVisible('button', 'Supprimer').click();
					post.parentNode.removeChild(post);
				}, 1000);
			}, 500);
			return;
		}
		var aime_plus = containsAndVisible('span', 'aime plus');
		if (aime_plus !== undefined) {
			aime_plus.click();
			post.parentNode.removeChild(post);
			return;
		}
		var retirer = containsAndVisible('span', 'Retirer un vote');
		if (retirer !== undefined) {
			retirer.click();
			post.parentNode.removeChild(post);
			return;
		}
		var signaler = containsAndVisible('span', 'Signaler');
		if (signaler !== undefined) {
			signaler.click();
			setTimeout(function () {
				containsAndVisible('label', 'ennuyeux').click();
				setTimeout(function () {
					containsAndVisible('button', 'Continuer').click();
					setTimeout(function () {
						containsAndVisible('a', 'Supprimer').click();
						setTimeout(function () {
							containsAndVisible('a', 'OK').click();
							post.parentNode.removeChild(post);
						}, 500);
					}, 500);
				}, 500);
			}, 500);
			return;
		}
		var invisible = containsAndVisible('span', 'Invisible dans le journal');
		if (invisible !== undefined) {
			invisible.click();
			post.parentNode.removeChild(post);
			return;
		}
	}, 500);
	setTimeout(function() {
		containsAndVisible('a', 'Fermer').click();
		setTimeout(function() {
			containsAndVisible('a', 'Fermer').click();
		}, 1000);
	}, 500);
}, 3000);

Lancer via bookmarklet (favori)

  • créer un nouveau favori et coller le code ci-dessous dans le champ adresse/location
  • se rendre sur facebook.com > Profil > Historique personnel
    • fonctionne aussi dans les autres catégories comme sondages ou historique des recherches
  • Cliquer sur le favori pour executer le script sur la page ouverte
javascript:function%20scrollBottom()%7Bwindow.scrollTo(0%2Cdocument.body.scrollHeight%7C%7Cdocument.documentElement.scrollHeight)%7Dfunction%20containsAndVisible(a%2Cc)%7Breturn%5B%5D.find.call(document.querySelectorAll(a)%2Cfunction(a)%7Breturn%20RegExp(c).test(a.textContent)%26%260%3Ca.offsetWidth%26%260%3Ca.offsetHeight%7D)%7Dfunction%20containsAndVisibleAll(a%2Cc)%7Breturn%5B%5D.filter.call(document.querySelectorAll(a)%2Cfunction(a)%7Breturn%20RegExp(c).test(a.textContent)%26%260%3Ca.offsetWidth%26%260%3Ca.offsetHeight%7D)%7DsetInterval(function()%7Bvar%20a%3Ddocument.querySelector(%22ul.uiList._4kg%20%3E%20li%22)%3Bif(null%3D%3Da)scrollBottom()%2CcontainsAndVisibleAll(%22div%22%2C%22activit%5Cu00e9%22).slice(-1).pop().click()%3Belse%20if(0%3D%3D%3Da.offsetHeight)a.parentNode.removeChild(a)%3Belse%7Bvar%20c%3Da.querySelector(%22._6a._6b.uiPopover.rfloat%20a%20span%22)%3Bnull%3D%3Dc%3F(console.log(%22pas%20d'action%20possible%20pour%20%3A%22%2Ca.querySelector(%22._42ef%22).innerText)%2Ca.parentNode.removeChild(a))%3A(c.click()%2CsetTimeout(function()%7Bvar%20b%3DcontainsAndVisible(%22span%22%2C%22Supprimer%22)%3Bvoid%200!%3D%3Db%3F(b.click()%2CsetTimeout(function()%7BcontainsAndVisible(%22button%22%2C%22Supprimer%22).click()%3BsetTimeout(function()%7BcontainsAndVisible(%22button%22%2C%22Supprimer%22).click()%3Ba.parentNode.removeChild(a)%7D%2C1E3)%7D%2C500))%3A(b%3DcontainsAndVisible(%22span%22%2C%22aime%20plus%22)%2Cvoid%200!%3D%3Db%3F(b.click()%2Ca.parentNode.removeChild(a))%3A(b%3DcontainsAndVisible(%22span%22%2C%22Retirer%20un%20vote%22)%2Cvoid%200!%3D%3Db%3F(b.click()%2Ca.parentNode.removeChild(a))%3A(b%3DcontainsAndVisible(%22span%22%2C%22Signaler%22)%2Cvoid%200!%3D%3Db%3F(b.click()%2CsetTimeout(function()%7BcontainsAndVisible(%22label%22%2C%22ennuyeux%22).click()%3BsetTimeout(function()%7BcontainsAndVisible(%22button%22%2C%22Continuer%22).click()%3BsetTimeout(function()%7BcontainsAndVisible(%22a%22%2C%22Supprimer%22).click()%3BsetTimeout(function()%7BcontainsAndVisible(%22a%22%2C%22OK%22).click()%3Ba.parentNode.removeChild(a)%7D%2C500)%7D%2C500)%7D%2C500)%7D%2C500))%3A(b%3DcontainsAndVisible(%22span%22%2C%22Invisible%20dans%20le%20journal%22)%2Cvoid%200!%3D%3Db%26%26(b.click()%2Ca.parentNode.removeChild(a))))))%7D%2C500)%2CsetTimeout(function()%7BcontainsAndVisible(%22a%22%2C%22Fermer%22).click()%3BsetTimeout(function()%7BcontainsAndVisible(%22a%22%2C%22Fermer%22).click()%7D%2C1E3)%7D%2C500))%7D%7D%2C3E3)%3Bvoid+0

(via yourjs.com/bookmarklet/)

TODO

  • multi-langues
  • gérer les évènements (participate à / intéréssé par...)

Enjoy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment