Skip to content

Instantly share code, notes, and snippets.

@minikomi
Created September 29, 2011 03:11
Show Gist options
  • Save minikomi/a4ae26b590cb085a2fa2 to your computer and use it in GitHub Desktop.
Save minikomi/a4ae26b590cb085a2fa2 to your computer and use it in GitHub Desktop.
hacker news - order comments by time
javascript:(function()%7Bvar%20comheads=document.getElementsByClassName(%22comhead%22);var%20nodearray=%5B%5D;for(var%20i=1;i%3Ccomheads.length;i++)%7Bc=comheads%5Bi%5D.childNodes;if(c.length===3)%7Bc=c%5B1%5D;%7Delse%20if(c.length===5)%7Bc=c%5B3%5D;%7Dvar%20node=c.nodeValue.split(%22%20%22);var%20timeunit=0;if(node%5B2%5D==%22days%22%7C%7Cnode%5B2%5D==%22day%22)%7Btimeunit=60*60*24;%7Delse%20if(node%5B2%5D==%22hours%22%7C%7Cnode%5B2%5D==%22hour%22)%7Btimeunit=60*60;%7Delse%20if(node%5B2%5D==%22minutes%22%7C%7Cnode%5B2%5D==%22minute%22)%7Btimeunit=60;%7Delse%20if(node%5B2%5D==%22seconds%22%7C%7Cnode%5B2%5D==%22second%22)%7Btimeunit=1;%7Dvar%20timetotal=timeunit*node%5B1%5D;var%20cycle=nodearray.length;if(cycle==0)%7Bnodearray.push(%7B%22node%22:i,%22timetotal%22:timetotal%7D);%7Delse%7Bvar%20j=0;while(cycle%3Ej)%7Bif(timetotal%3C=nodearray%5Bj%5D.timetotal)%7Bvar%20head=nodearray.slice(0,j);var%20tail=nodearray.slice(j);head.push(%7B%22node%22:i,%22timetotal%22:timetotal%7D);nodearray=head.concat(tail);break;%7Delse%7Bj++;%7D%7Dif(nodearray.length==j)%7Bnodearray.push(%7B%22node%22:i,%22timetotal%22:timetotal%7D);%7D%7D%7Dvar%20commentsTable=document.getElementsByTagName(%22table%22)%5B3%5D;var%20commentsRows=commentsTable.getElementsByTagName(%22tr%22);var%20spacers=commentsTable.getElementsByTagName(%22img%22);for(i=0;i%3Cspacers.length/2;i++)%7Bspacers%5Bi*2%5D.style.width=0;%7Dvar%20crArray=%5B%5D;for(var%20i=0;i%3CcommentsRows.length;i++)%7BcrArray.push(commentsRows%5Bi%5D);%7Dvar%20commentsBody=commentsTable.getElementsByTagName(%22tbody%22)%5B0%5D;while(commentsBody.childNodes.length%3E=1)%7BcommentsBody.removeChild(commentsBody.firstChild);%7Dfor(var%20i=0;i%3Cnodearray.length;i++)%7Bvar%20commentnum=nodearray%5Bi%5D.node;commentsTable.appendChild(crArray%5B2*(commentnum-1)%5D);%7D%7D)();
javascript:
(
var comheads = document.getElementsByClassName("comhead");
var nodearray = [];
for(var i = 1; i<comheads.length; i++){
c = comheads[i].childNodes;
if(c.length === 3){c = c[1];}
else if(c.length === 5){c = c[3];}
var node = c.nodeValue.split(" ");
var timeunit = 0;
if(node[2] === "days" || node[2] === "day"){ timeunit = 60 * 60 * 24;}
else if(node[2] === "hours" || node[2] === "hour"){ timeunit = 60 * 60;}
else if(node[2] === "minutes" || node[2] === "minute"){ timeunit = 60;}
else if(node[2] === "seconds" || node[2] === "second"){ timeunit = 1;}
var timetotal = timeunit * node[1];
var cycle = nodearray.length;
if(cycle === 0){nodearray.push({"node":i,"timetotal":timetotal});}
else{
var j = 0;
while(cycle > j){
if(timetotal <= nodearray[j].timetotal ){
var head = nodearray.slice(0,j);
var tail = nodearray.slice(j);
head.push({"node":i,"timetotal":timetotal});
nodearray = head.concat(tail);
break;
}else{
j++;
}
}
if(nodearray.length === j){
nodearray.push({"node":i,"timetotal":timetotal});
}
}
}
var commentsTable = document.getElementsByTagName("table")[3];
var commentsRows = commentsTable.getElementsByTagName("tr");
var spacers = commentsTable.getElementsByTagName("img");
//clear spacer image widths
for(i = 0;i < spacers.length/2; i++){
spacers[i*2].style.width = 0;
}
//create temp array holding comments data
var crArray = [];
for(var i = 0;i < commentsRows.length; i++){
crArray.push(commentsRows[i]);
}
var commentsBody = commentsTable.getElementsByTagName("tbody")[0];
//clear comments from body
while(commentsBody.childNodes.length >= 1){
commentsBody.removeChild(commentsBody.firstChild);
}
//add back in order of time
for (var i=0;i<nodearray.length;i++){
var commentnum = nodearray[i].node;
commentsTable.appendChild(crArray[2*(commentnum-1)]);
}
)();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment