Dal momento che sto fornendo ulteriori dettagli, sto scrivendo la mia risposta basata sull'originale (invece di modificarlo).
Sì, c'è un modo per farlo, ma questo metodo funziona solo per Facebook e Messenger basati sul web; non puoi fare qualcosa di simile per le app mobili.
Fondamentalmente, Facebook utilizza le richieste a tempo sul lato server per verificare se il client è ancora disponibile. Quindi il front-end (pagina Web di Facebook caricata) invierà periodicamente una richiesta HTTP ( XHR ) con il tempo di inattività ai propri server.
Ecco un esempio di tale richiesta:
https://1-edge-chat.facebook.com/pull?channel=p_<UserID>&seq=0&partition=-2&clientid=18ae8ecc&cb=ie3k&idle=117&qp=y&cap=8&msgs_recv=0&uid=userid&viewer_uid=userid&msgr_region=FRC&state=offline
Nota: ho sostituito l'ID utente che normalmente sarebbe un numero.
Se leggi l'URL sopra, vedrai la parte che dice inattivo = 117 . Questo indica il numero totale di secondi per cui l'account è stato inattivo. Lo Stato = offline sta per se la chat viene acceso o spento.
Pertanto, per disabilitarlo, aggiungi la seguente regola all'elenco personalizzato di filtri del blocco annunci:
||*-edge-chat.facebook.com^$xmlhttprequest
Per disabilitare su entrambi, Facebook e Messenger, è possibile aggiungere le seguenti due righe:
||*-edge-chat.facebook.com^$xmlhttprequest
||*-edge-chat.messenger.com^$xmlhttprequest
O la linea singola, usando regex :
/^https?\:\/\/\d+-edge-chat\.(facebook|messenger)\.com\/?/$xmlhttprequest
Alcuni svantaggi di questo metodo sono che non sarai in grado di ricevere messaggi in tempo reale e non comparirai online anche se la chat è attiva. Dovrai aggiornare la pagina per ricevere nuovi messaggi.
Per evitare entrambi questi inconvenienti, ecco una soluzione alternativa. Puoi invece aggiungere questa riga:
/^https?\:\/\/\d+-edge-chat\.facebook\.com\/pull\?.*state=offline/$xmlhttprequest
Oppure aggiungi questo sia per Facebook che per Messenger:
/^https?\:\/\/\d+-edge-chat\.(facebook|messenger)\.com\/pull\?.*state=offline/$xmlhttprequest
Il risultato finale di questo sarà il seguente:
- Quando la chat è disattivata, non comparirai online, la tua ultima attività non verrà segnalata e non sarai in grado di ricevere messaggi in tempo reale.
- Quando la chat è attiva, apparirai online, verrà segnalata la tua ultima attività e sarai in grado di ricevere messaggi in tempo reale.
Sfortunatamente, non sembra esserci altra soluzione poiché il front-end di Facebook può recuperare i messaggi solo quando il client segnala periodicamente che sono attivi, quindi il recupero viene eseguito una volta che viene segnalata l'ultima attività. Entrambe queste azioni sono rese possibili da un unico script back-end ( * -edge-chat.facebook.com / pull ), attraverso la stessa richiesta; pertanto, non puoi averne uno senza l'altro.