Skip to content

khalilbenaz/fb-friend-remover

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

đŸ‘„ Facebook Friend Remover Pro

Chrome Manifest V3 License: MIT JavaScript

Une extension Chrome pour supprimer intelligemment des amis Facebook avec des filtres avancĂ©s, un suivi en temps rĂ©el et un arrĂȘt d'urgence.


✹ FonctionnalitĂ©s

  • 4 modes de filtrage — Noms arabes, noms non-arabes, sans amis en commun, ou tout supprimer
  • Chargement automatique complet — Scroll intelligent qui dĂ©tecte et charge toute la liste d'amis avant de commencer
  • Suivi en temps rĂ©el — Compteur de suppressions, d'amis ignorĂ©s, et barre de progression animĂ©e
  • Limite configurable — DĂ©finir un nombre maximum de suppressions (ou 0 pour tout)
  • DĂ©lai ajustable — ContrĂŽler la vitesse de suppression (en secondes)
  • ArrĂȘt d'urgence — Bouton d'arrĂȘt instantanĂ© Ă  tout moment
  • Interface moderne — Popup avec design gradient, animations et feedback visuel
  • Manifest V3 — Compatible avec les derniĂšres spĂ©cifications Chrome Extensions

📩 Installation

Prérequis

  • Google Chrome (version 88+)
  • Un compte Facebook actif

Installation manuelle

  1. Clonez le dépÎt :

    git clone https://github.com/khalilbenaz/fb-friend-remover.git
    cd fb-friend-remover
  2. Ouvrez Chrome et allez dans la gestion des extensions :

    chrome://extensions/
    
  3. Activez le Mode développeur (toggle en haut à droite)

  4. Cliquez sur « Charger l'extension non empaquetée » et sélectionnez le dossier du projet

  5. VĂ©rifiez que l'icĂŽne đŸ‘„ apparaĂźt dans votre barre d'outils Chrome


🚀 Utilisation

Étape par Ă©tape

  1. Rendez-vous sur la page Amis de votre profil Facebook :

    https://www.facebook.com/[votre-id]/friends
    
  2. Cliquez sur l'icĂŽne de l'extension dans la barre d'outils Chrome

  3. Configurez les paramĂštres :

    • Limite — Nombre maximum de suppressions (0 = illimitĂ©)
    • DĂ©lai — Temps d'attente entre chaque suppression (en secondes, minimum 0.5)
  4. Choisissez un mode de suppression :

    Bouton Filtre Description
    📝 Noms Arabes arabic Supprime uniquement les amis dont le nom contient des caractùres arabes (Unicode \u0600-\u06FF)
    đŸ”€ Noms Non-Arabes non-arabic Supprime uniquement les amis dont le nom ne contient pas de caractĂšres arabes
    đŸš« Sans amis communs no-mutual Supprime les amis sans amis en commun (dĂ©tection par "commun" / "mutual")
    đŸ—‘ïž TOUT SUPPRIMER all Supprime tous les amis sans exception
  5. Observez la progression en temps réel dans le popup

  6. Utilisez âč ARRÊT D'URGENCE si vous souhaitez interrompre le processus


⚙ Configuration

Les paramÚtres sont sauvegardés localement dans le navigateur entre les sessions :

ParamÚtre Type Par défaut Description
Limite Entier ≄ 0 0 (tout) Nombre maximum d'amis Ă  supprimer. 0 = pas de limite
DĂ©lai Float ≄ 0.5 1 seconde Pause entre chaque suppression. Augmenter pour rĂ©duire le risque de blocage

đŸ—ïž Architecture

fb-friend-remover/
├── manifest.json        # Configuration Chrome Extension (Manifest V3)
├── popup.html           # Interface utilisateur du popup (HTML + CSS inline)
├── popup.js             # Logique du popup (Ă©vĂ©nements, communication, UI)
├── content.js           # Script injectĂ© dans Facebook (scroll, dĂ©tection, suppression)
├── activate.html        # Page d'activation
├── images/              # Icînes de l'extension
│   ├── 16.png
│   ├── 48.png
│   └── 128.png
├── .github/             # Configuration GitHub
├── .gitignore
├── LICENSE              # MIT
└── README.md

Flux d'exécution

popup.js                          content.js (injecté dans Facebook)
────────                          ──────────────────────────────────
Clic bouton
    │
    ├── VĂ©rifie URL facebook.com
    ├── Injecte content.js
    ├── Envoie message START ──────â–ș  RĂ©ception config (filter, max, delay)
    │                                       │
    │                                       ├── 1. findScrollableContainer()
    │                                       │      DĂ©tecte le bon conteneur scrollable
    │                                       │
    │                                       ├── 2. loadAllFriends()
    │                                       │      Scroll + charge toute la liste
    │                                       │      (jusqu'Ă  10 retries si bloquĂ©)
    │                                       │
    │                                       ├── 3. processRemoval()
    │                                       │      Pour chaque carte d'ami :
    │                                       │        - Filtre selon config
    │                                       │        - scrollIntoView
    │                                       │        - Clic menu "..." → "Retirer" → "Confirmer"
    │                                       │        - Masque visuellement (opacity: 0.1)
    │                                       │
    │   ◄── Messages UPDATE ─────────────────  Stats en temps rĂ©el
    │       { stats, isRunning, action }     │
    │                                       │
    ├── Clic STOP ──────────────────â–ș  state.isRunning = false
    │                                       │
    ▌                                       ▌
  Mise Ă  jour UI                      finish() → arrĂȘt

Communication

L'extension utilise le systĂšme de messaging Chrome Extension (Manifest V3) :

  • popup.js → content.js : Messages START (avec config) et STOP
  • content.js → popup.js : Messages UPDATE (stats, Ă©tat, action en cours)

🔧 DĂ©tails Techniques

Permissions (manifest.json)

Permission Raison
activeTab Accéder à l'onglet Facebook actif
scripting Injecter content.js dans la page
storage Sauvegarder les préférences utilisateur

Host Permission

"host_permissions": ["https://www.facebook.com/*"]

L'extension ne fonctionne que sur facebook.com.

Détection du scroll

Le script détecte automatiquement le conteneur scrollable de Facebook (qui n'est pas toujours window) en remontant le DOM depuis les cartes d'amis jusqu'au premier parent avec overflow-y: auto|scroll.

Détection des noms arabes

Utilise une regex Unicode pour identifier les caractĂšres arabes :

const isArabic = /[\u0600-\u06FF]/.test(name);

Détection des amis en commun

Recherche les mots-clés "commun" (FR) ou "mutual" (EN) dans le texte de la carte :

const hasMutual = text.toLowerCase().includes('commun') || 
                  text.toLowerCase().includes('mutual');

⚠ Avertissements Importants

🔮 Action irrĂ©versible — La suppression d'amis est dĂ©finitive. Il n'existe aucun moyen de rĂ©cupĂ©rer automatiquement les amis supprimĂ©s.

🟡 Risque de blocage — Facebook peut temporairement restreindre votre compte si trop d'actions sont effectuĂ©es rapidement. Utilisez un dĂ©lai ≄ 1 seconde pour minimiser ce risque.

🟡 Interface Facebook — Facebook modifie rĂ©guliĂšrement son interface. Si les sĂ©lecteurs DOM changent, les boutons "Retirer" ou "Confirmer" pourraient ne pas ĂȘtre trouvĂ©s. Le script gĂšre ces cas gracieusement (ferme le menu et passe au suivant).

🟱 Testez d'abord — Utilisez toujours une petite limite (ex: 5) pour vĂ©rifier que tout fonctionne correctement avant un nettoyage massif.


đŸ€ Contributing

  1. Forkez le projet
  2. Créez une branche feature :
    git checkout -b feature/ma-fonctionnalite
  3. Commitez vos changements :
    git commit -am "Ajoute ma fonctionnalité"
  4. Pushez et ouvrez une Pull Request

Idées de contribution

  • Support d'autres langues pour la dĂ©tection des boutons (arabe, espagnol
)
  • Mode "dry-run" (simulation sans suppression rĂ©elle)
  • Export de la liste d'amis avant suppression
  • Filtrage par date d'ajout ou nombre d'interactions

🐛 DĂ©pannage

ProblĂšme Solution
"Allez sur la page Amis de Facebook" Assurez-vous d'ĂȘtre sur facebook.com/[votre-id]/friends
Le script ne charge pas tous les amis Augmentez le nombre de retries ou attendez que la page soit entiÚrement chargée
Les amis ne se suppriment pas Facebook a peut-ĂȘtre changĂ© ses sĂ©lecteurs CSS. Ouvrez une issue sur GitHub
Erreur de communication Rechargez la page Facebook et relancez l'extension
Blocage temporaire Facebook Attendez quelques heures et augmentez le délai entre les suppressions

📄 License

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.


📊 Technologies

Techno Version Usage
Chrome Extensions Manifest V3 Architecture de l'extension
JavaScript ES6+ Logique applicative (async/await, arrow functions)
HTML5 / CSS3 — Interface popup (animations, gradients, grid layout)
Chrome Scripting API — Injection du content script
Chrome Messaging API — Communication popup ↔ content script

About

đŸ‘„ Chrome Extension (Manifest V3) pour supprimer intelligemment des amis Facebook avec filtres avancĂ©s (noms arabes, sans amis communs, tout). Suivi en temps rĂ©el & arrĂȘt d'urgence.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors