Oggi ho ricevuto un messaggio da un amica la quale mi chiedeva di darle una mano in quanto modificando la sua password dell'account di Facebook, ha creato un po' di casino ed è rimasta fuori dal suo stesso profilo.


Non puo' piu' recuperarlo poichè non ha piu' accesso da molto tempo alla mail usata per la registrazione di quel profilo.

Così l'unica soluzione rimasta è quella di ri-crearsi un profilo ed aggiungere di nuovo tutti i suoi contatti... solo che aggiungere piu' di 1100 contatti a mano diventa qualcosa di improponibile.


Ho pensato ad una soluzione ed in 10 minuti di smanettamento su Facebook sono riuscito a trovare un buon compromesso. Certo, spendendoci dietro piu' tempo avrei sicuramente trovato automatismi migliori e magari usando direttamente qualche metodo e funzione sviluppata da Facebook e disponibile in run-time sul sito.

Ma perchè sbattersi poi piu' di tanto se il risultato è gia' buono ma soprattutto funzionale?

Requisiti
  1. Un account Facebook con l'amicizia gia' approvata da parte dell'utente "disattento"
  2. iMacro ( si trova sia per firefox che chrome, ma è fortemente consigliato usarlo su Firefox a causa dell'instabilità della versione di iMacro per chrome )
Qui di seguito, i passi per il recupero dei contatti persi.
  • Andare sul profilo dell'account di cui desiderate recuperarne i contatti.
  • Aprire la finestra contenente la lista dei contatti.
  • Aprire un Javascript Debugger.


$$(".UIObjectListing_Title").each(function(e){console.log(e.innerText)}); <= Questo per avere la lista dei nomi
$$(".UIObjectListing_Title").each(function(e){if (!e.parentNode.parentNode.childNodes[5].childNodes[3].hasClass("hidden_elem"))console.log(e.href)}); <= questo per avere la lista di indirizzi web dei profili dei contatti

Così facendo, è possibile estrappolare tutti gli indirizzi dei vari contatti, eseguendo la chiamata javascript per ogni paginata di contatti.

E' importante scorrere fino alla fine la lista dei contatti prima di eseguire il metodo, altrimenti verranno estrappolati soltanto una parte dei contatti e non tutti.

A questo punto, salvare in un file di testo, tutti gli indirizzi dei profili dei contatti per poi generarsi il proprio scriptino per iMacro.

Io l'ho fatto usando la mia shell python su shell.baruffaldi.info, ma voi potrete usare quella che preferite con il linguaggio che preferite.

L'importante, è che generate un file contenente il seguente snippetcode per ogni singolo contatto:
WAIT SECONDS=4
URL GOTO=http://indirizzo.del.profilo.del.singolo.contatto
WAIT SECONDS=2
TAG POS=2 TYPE=SPAN ATTR=TXT:AddasFriend
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:BUTTON ATTR=NAME:connect&&VALUE:SendRequest
WAIT SECONDS=4

E ricordatevi di inserire all'inizio dello scriptino, la direttiva "SET !REPLAYSPEED SLOW". Questo permetterà ad iMacro di non impantanarsi durante l'esecuzione dello script per eventuali lentezze di rete e di processing dello script.

Se volete usare il mio scriptino per la generazione del file .iim eccolo:
fl = """http://www.facebook.com/blahblahblah?ref=sgm
http://www.facebook.com/rtfm?ref=sgm
http://www.facebook.com/example?ref=sgm""".split("\n")

print "SET !REPLAYSPEED SLOW"

for f in fl:
  print """WAIT SECONDS=4
URL GOTO=""" + f + """
WAIT SECONDS=2
TAG POS=2 TYPE=SPAN ATTR=TXT:AddasFriend
WAIT SECONDS=1
TAG POS=1 TYPE=INPUT:BUTTON ATTR=NAME:connect&&VALUE:SendRequest"""

--------------------------

Si, questo post non è concluso... son proprio un cattivone! 

0 commenti:

Posta un commento

Visualizzazioni totali