-
-
Save minikomi/a4ae26b590cb085a2fa2 to your computer and use it in GitHub Desktop.
hacker news - order comments by time
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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