Skip to content

Instantly share code, notes, and snippets.

@Cifro
Last active November 27, 2018 06:03
Show Gist options
  • Save Cifro/7390198 to your computer and use it in GitHub Desktop.
Save Cifro/7390198 to your computer and use it in GitHub Desktop.
FB Friends Ranking
<a href="javascript:(function()%7Bfunction%20creator(e,t,n)%7Bvar%20r=document.createElement(n);var%20i=document.createTextNode(t);r.appendChild(i);e.appendChild(r)%7Dfunction%20displayData(e)%7Bvar%20t=document.createElement(%22table%22);var%20n=document.createElement(%22thead%22);t.appendChild(n);var%20r=document.createElement(%22tr%22);creator(r,%22Name%22,%22th%22);creator(r,%22Score%22,%22th%22);n.appendChild(r);var%20s=document.createElement(%22tbody%22);t.appendChild(s);for(i=0;i&lt;e.length;i++)%7Bvar%20r=document.createElement(%22tr%22);creator(r,e%5Bi%5D%5B%22text%22%5D,%22td%22);creator(r,e%5Bi%5D%5B%22grammar_costs%22%5D%5B%22%7Buser%7D%22%5D,%22td%22);s.appendChild(r)%7Ddocument.body.innerHTML=%22%22;document.body.appendChild(t)%7Did=requireDynamic(%22Env%22).user;url=%22//www.facebook.com/ajax/typeahead/search/facebar/bootstrap/?viewer=%22+id+%22&amp;__a=1%22;x=new%20XMLHttpRequest;x.onreadystatechange=function()%7Bif(x.readyState==4&amp;&amp;x.status==200)%7Bsrr=JSON.parse(x.responseText.substring(9)).payload.entries;displayData(srr)%7D%7D;x.open(%22GET%22,url,true);x.send()%7D)()" target="_blank">FB Friends Ranking</a>
// Source: http://arjunsreedharan.org/post/65979958297/find-your-facebook-friends-ranking-score
function creator(o, data, node){
var content = document.createElement(node);
var cell = document.createTextNode(data);
content.appendChild(cell);
o.appendChild(content);
}
function displayData(arr){
var table = document.createElement('table');
var thead = document.createElement('thead');
table.appendChild(thead);
var row = document.createElement('tr');
creator(row, 'Name', 'th');
creator(row, 'Score', 'th');
thead.appendChild(row);
var tbody = document.createElement('tbody');
table.appendChild(tbody);
for(i=0; i<arr.length; i++){
var row = document.createElement('tr');
creator(row, arr[i]["text"], 'td');
creator(row, arr[i]["grammar_costs"]["{user}"], 'td');
tbody.appendChild(row);
}
document.body.innerHTML = "";
document.body.appendChild(table);
}
id = requireDynamic("Env").user;
url = "//www.facebook.com/ajax/typeahead/search/facebar/bootstrap/?viewer=" + id + "&__a=1";
x = new XMLHttpRequest();
x.onreadystatechange=function(){
if (x.readyState==4 && x .status==200){
srr=JSON.parse(x.responseText.substring(9)).payload.entries;
displayData(srr);
}
}
x.open("GET",url,true);
x.send();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment