Forum     

Go Back   Digit Technology Discussion Forum > Community > Tutorials
Register FAQ Calendar Mark Forums Read

Tutorials This section offers tutorials and How to's on just about anything related to computers and IT. Note: All tutorials are courtesy the posters and not verified by Digit


Reply
 
LinkBack Thread Tools Display Modes
Old 28-05-2011, 09:51 PM   #1 (permalink)
Mozilla Rep
 
sygeek's Avatar
 
Join Date: Apr 2011
Location: Lucknow
Posts: 1,471
Default Convert your Facebook friend contacts to CSV.


Source Code By Vytautas Jakutis .

To execute this JavaScript code, you need to open the friends list from your own profile. Also, do not forget to scroll down, until all friends are loaded.

When the script is finished, a pop up window with a filled text field is opened. You need to select all text, copy it to a text editor and save it with csv file extension.

Sadly, the forum won't let me insert the javascript into a link. You guys have to either copy all the code and paste into the URL address or just create a bookmark manally with the code provided below.

The source code:
Code:
javascript:(function(){var%20screenNamesAndEmailsAndWebsites,getContacts,screenNames,fillBorn,iframe,IframeSeries,fieldsToExport,log,txt,getData,fillData,ready,warn,except,fillCityCountry,multi,contactsToCSV,fill;fieldsToExport=["First%20name","Last%20name","Second%20name","Birthday%20date","Home%20address","Home%20city","Home%20country","Home%20phone","Home%20phone%202","Home%20phone%203","Home%20phone%204","Cell%20phone","Cell%20phone%202","Cell%20phone%203","Cell%20phone%204","E-Mail","E-Mail%202","E-Mail%203","E-Mail%204","WWW","WWW%202","WWW%203","WWW%204","IM%20Skype","IM%20AOL","Additional%20info"];log=function(){};ask=function(a){var%20b;b=window.confirm(a);log("ask",a,b);return%20b};except=function(a){log("except",a);throw%20a};warn=function(a){log("warn",a);window.alert(a)};txt=function(a){if(a.childNodes.length===0){return""}if(typeof%20a.textContent!=="undefined"){return%20a.textContent}if(typeof%20a.innerText!=="undefined"){return%20a.innerText}log(a);throw"cannot%20get%20text%20from%20node"};getData=function(f){var%20a,g,d;try{if(f.nodeType===3){return%20f.data}if(f.classList.contains("url")){return%20f.href}if(f.classList.contains("fsm")||f.classList.contains("mediaRowWrapper")){f=f.firstChild}if(f.classList.contains("uiList")){if(f.firstChild.lastChild.nodeType===1&&f.firstChild.lastChild.classList.contains("pls")&&f.firstChild.lastChild.classList.contains("inlineLabel")){a={};for(d=0,c=f.childNodes;c[d];d++){g=c[d].lastChild.firstChild;if(typeof%20a[g.data]==="undefined"){a[g.data]=[]}if(c[d].firstChild.nodeType===3){a[g.data].push(c[d].firstChild.data)}else{a[g.data].push(txt(c[d].firstChild))}}}else{a=[];for(d=0,c=f.childNodes;c[d];d++){if(c[d].firstChild.nodeType===3){a.push(c[d].firstChild.data)}else{a.push(txt(c[d]))}}}return%20a}}catch(b){except("failed%20at"+txt(f))}return%20txt(f)};ready=function(a){return%20a.document.querySelectorAll("td.data").length>0};fillData=function(f,a){var%20d,e,b;e=a.document.querySelectorAll("td.data");b=a.document.querySelectorAll("th.label");if(e.length!==b.length){throw"data%20length%20does%20not%20equal%20label%20length"}for(d=0;e[d];d++){if(b[d].firstChild!==null){f[b[d].firstChild.data]=getData(e[d].firstChild)}}};iframe=function(a,d){var%20b;b=window.document.createElement("iframe");b.src=a;b.onload=function(){d(b.contentWindow,function(){window.document.body.removeChild(b)})};b.height=1;b.width=1;b.style.opacity=0;window.document.body.appendChild(b)};IframeSeries={el:window.document.createElement("iframe"),load:function(a,d){var%20b=this;this.el.onload=function(){d(b.el.contentWindow)};this.el.src=a}};window.document.body.appendChild(IframeSeries.el);fillBorn=function(d,a){var%20f,b,g,e,h;b=d.document.querySelectorAll(".fbProfileBylineFragment");g="Born%20on";e=null;for(f=0;b[f];f++){h=b[f].childNodes[1].data;if(h.indexOf(g)===0){h=h.substr(g.length);if(!Date.parse(h)){h+=",2010"}a.born=new%20Date(h);return}}};fillCityCountry=function(e,b){var%20d;d=e.split(",");if(d.length>2){throw"unexpectedly%20many%20comma-separated%20values%20in%20address"}else{if(d.length===1){b["Home%20country"]=d[0]}else{b["Home%20city"]=d[0];b["Home%20country"]=d[1]}}};multi=function(b,d,a,e){if(typeof%20a[e]==="undefined"){log("no",e);return}a[e].forEach(function(g,f){d[b+(f>0?(""+(f+1)):"")]=g});delete%20a[e]};screenNames=function(a,d,b){Object.keys(b).forEach(function(e){if(typeof%20a[d]["("+e+")"]!=="undefined"){if(e==="Google%20Talk"){a.Email.push(a[d]["("+e+")"][0])}if(e==="Twitter"){a.Website.push("http://twitter.com/"+a[d]["(Twitter)"][0])}else{var%20f=0;if(typeof%20a["IM"+b[e]]==="undefined"){f++;a["IM"+b[e]]=a[d]["("+e+")"][0]}a[d]["("+e+")"].slice(f).forEach(function(g){a["Additional%20info"]+="IM"+b[e]+":"+g+";"})}delete%20a[d]["("+e+")"]}});if(Object.keys(a[d]).length>0){throw"too%20many"+d+"defined:"+JSON.stringify(a[d])}delete%20a[d]};screenNamesAndEmailsAndWebsites=function(a,b){if(typeof%20a.Email==="undefined"){a.Email=[]}if(typeof%20a.Website==="undefined"){a.Website=[]}a["Additional%20info"]+="Facebook%20profile:"+a.url[0]+";";delete%20a.url;a.Website=a.Website.filter(function(d){if(d.substr(0,4)!=="http"){log("unknown%20website",d);return%20false}return%20true});if(typeof%20a["Screen%20Name"]!=="undefined"){screenNames(a,"Screen%20Name",b)}if(typeof%20a["Screen%20Names"]!=="undefined"){screenNames(a,"Screen%20Names",b)}multi("E-Mail",a,a,"Email");multi("WWW",a,a,"Website")};fill=function(n,f){var%20b,k,h,m,a,o,l;try{o=false;for(b=0,c=n.document.querySelectorAll("script");c[b];b++){a=txt(c[b]).indexOf("navigation.php?id=");if(a>=0){o=true;f["Additional%20info"]="Facebook%20ID:"+txt(c[b]).substring(a+"navigation.php?id=".length,txt(c[b]).indexOf("\\",a))+";"}}if(!o){throw"could%20not%20find%20Facebook%20ID"}fillData(f,n);l=f.fullName.split("");f["First%20name"]=l[0];f["Last%20name"]=l[l.length-1];if(l.length>2){f["Second%20name"]=l[1]}delete%20f.fullName;if(typeof%20f.Address!=="undefined"){if(f.Address.length>2){throw"unexpectedly%20long%20address:"+f.Address}else{if(f.Address.length===1){fillCityCountry(f.Address[0],f);delete%20f.Address}else{f["Home%20address"]=f.Address[0];fillCityCountry(f.Address[1],f);delete%20f.Address}}}if(typeof%20f.Phone!=="undefined"){b=0;if(typeof%20f.Phone.Mobile!=="undefined"){b++;multi("Cell%20phone",f,f.Phone,"Mobile")}if(typeof%20f.Phone.Home!=="undefined"){b++;multi("Home%20phone",f,f.Phone,"Home")}if(Object.keys(f.Phone).length!==0){throw"too%20many%20phones%20defined:"+JSON.stringify(f.Phone)+","+Object.keys(f.Phone)}delete%20f.Phone}screenNamesAndEmailsAndWebsites(f,{Skype:"Skype",Twitter:"Twitter",AIM:"AOL","Google%20Talk":"Jabber","Windows%20Live%20Messenger":"MSN","Yahoo!Messenger":"Yahoo","Gadu-Gadu":"Gadu-Gadu",ICQ:"ICQ"});fillBorn(n,f);if(typeof%20f.born!=="undefined"){k=f.born;h=k.getUTCMonth()+1;m=k.getUTCDate()+1;f["Birthday%20date"]=(h<10?("0"+h):String(h))+"/"+(m<10?("0"+m):String(m))+"/"+k.getUTCFullYear();delete%20f.born}for(b%20in%20f){if(Object.prototype.hasOwnProperty.call(f,b)&&fieldsToExport.indexOf(b)<0){f["Additional%20info"]+=b+":"+f[b]+";";delete%20f[b]}}}catch(g){warn("Contact%20was%20not%20fully%20read:"+JSON.stringify(f))}};contactsToCSV=function(d){var%20b,e,a;e=fieldsToExport;a=e.join(",")+"\n";log("header",a);d.forEach(function(g){var%20f;f=[];e.forEach(function(h){if(typeof%20g[h]==="undefined"||g[h]===""){f.push("")}else{f.push('"'+g[h].replace(new%20RegExp('"',"g"),'""')+'"')}});a+=f.join(",")+"\n"});b=window.open();b.document.write("<textarea>"+a+"</textarea>")};getContacts=function(d){var%20b,e,a,f;b=document.querySelectorAll(".fwb");e=[];for(a=0;b[a];a++){if(b[a].classList.contains("fsl")){f={};f.url=[b[a].firstChild.href];f.fullName=b[a].firstChild.firstChild.data;e.push(f)}}d(e)};getContacts(function(f){var%20b,a,d,e;a=0;d=500;e=20;window.contacts=f;b=function(){log(a,f.length);if(a===f.length){contactsToCSV(f)}else{log("extracting",f[a].fullName,f[a].url[0]);IframeSeries.load(f[a].url[0]+(f[a].url[0].indexOf("profile.php")<0?"?":"&")+"sk=info",function(g){var%20h,i;h=0;i=function(){if(h===e){if(ask('Failing%20to%20find%20data%20of"'+f[a].fullName+'".Keep%20trying?')){h=0}else{fill(g,f[a]);a++;b();return}}setTimeout(function(){log("poll");if(ready(g)){fill(g,f[a]);a++;b();log("extracted",f[a])}else{h++;i()}},d)};i()})}};b()});})()

Last edited by sygeek; 28-05-2011 at 10:06 PM.
sygeek is offline   Reply With Quote
Advertisements. Register and be a member of the community to get rid of them.
Advertisement

Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


 
Latest Threads
- by Who
- by Krow
- by clmlbx
- by Tech&ME
- by icebags

Advertisement




All times are GMT +5.5. The time now is 08:54 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, vBulletin Solutions, Inc.

Search Engine Optimization by vBSEO 3.3.2