Okay, it is now a group effort.
Here is the final code.
Edit start and end to a range, probably ~10, and claim your range.
I'll do 0-10, someone should do 10-20 or so.
Post a .zip of the results of your range.
I have added parse tags to denote the post header, start, end, page start, page end, topic start, and topic end.
Here are the first 10, with start=0 and end=10. Next person should use start=10.
There are HTML comments denoting major points if anyone wants to make a reparser to convert it all to bbcode.
Edit: forgot the code. Duh.
<script language = javascript>
var start=0;
var end=10;
var r;
var o;
var aa = new Array();
var pagenum;
var rr;
function con()
{
try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}
return new XMLHttpRequest();
}
function a()
{
o="";
//aa[0]="http://www.bay12games.com/forum/index.php?topic=39823.0";//"http://www.bay12games.com/forum/index.php?topic=40391.0";
if(1)
{
for(var n=0;n<=800;n+=50)
{
r=con();
r.onreadystatechange=bbb;
r.open("GET","http://www.bay12games.com/forum/index.php?board=9."+n*50,false);
r.send(null);
if(aa.length>end)break;
}
for(var p in aa)
{
if(p<start)continue;
if(p>=end)break;
pagenum=0;
if(aa[p]!=aa[p-1])
{
o+="<!--topic_start-->";
parsePage(aa[p].replace(/"/g,""));
o+="<hr><hr><hr><hr><hr>";
}
//if(p>10)break;
}
}
else
{
pagenum=0;
parsePage(aa[0].replace(/"/g,""));
}
document.write(o.replace(/</g,"<").replace(/>/g,">"));
}
function bbb()
{
if(r.readyState == 4 && r.status == 200)
VNparse(r.responseText);
}
function VNparse(s)
{
var a=s.match(/"http:\/\/www.bay12games.com\/forum\/index.php\?topic=\d+.0"/g);
aa=aa.concat(a);
}
function parsePage(page)
{
o+="<!--page_start--><hr>"+page+"<hr>";
rr="";
r=con();
r.onreadystatechange=parsePage2;
r.open("GET",page,false);
r.send(null);
var d=page.search(/\d\D\d+/);
d+=page.substring(d+1).search(/\D\d+/);
var dd=parseInt(page.substr(d+2));
o+="<!--page_end-->";
if(rr.indexOf(page.substr(0,d+2)+(dd+50))>=0)
{
parsePage(page.substr(0,d+2)+(dd+50));
}
else
o+="<hr><!--topic_end-->";
}
function parsePage2()
{
if(r.readyState == 4 && r.status == 200)
{
rr=r.responseText;
VNpage(rr);
fail=0;
}
}
function VNpage(s)
{
var d=s.search("Topic:");
s=s.substring(d+6);
d=s.search(" ");
o+="Topic: " + s.substring(0,d) + "<br><br>";
d=s.search("markasread");
s=s.substring(10,d);
var loop = 0;
while(loop<100)
{
if(s.search(/<div class="signature">/i)==-1)break;
d=s.search(/<div class="signature">/i);
parsePost(s.substring(0,d));
o+="<hr>";
s=s.substring(d+1);
loop++;
}
}
function parsePost(s)
{
var d=s.search(/<a href="http:\/\/www.bay12games.com\/forum\/index.php.action=profile;u=\d+" title="View the profile of .+">.+<\/a>/i);
s=s.substring(d);
d=s.search("View the profile of ");
s=s.substring(d+20);
d=s.search("\">");
o+="<br><!--post_head-->Poster: "+s.substring(0,d);
s=s.substring(d*2+6);
d=s.search(/.msg\d+#msg\d+">/);
s=s.substring(d);
d=s.search("\">");
s=s.substring(d+2);
d=s.search(/<\/a>/i);
o+="<br>"+s.substring(0,d)+"<br>";
s=s.substring(d);
d=s.search(/<div/i);
s=s.substring(d);
d=s.search(/<\/div>/i);
o+=s.substring(0,d)+"<br>";
s=s.substring(d+6);
d=s.search(/msg_\d+"/i);
s=s.substring(d);
d=s.search(/>/i);
s=s.substring(d+1);
d=s.search(/<tr id.+msg_\d+_footer"/i);
o+="<!--post_start-->"+s.substring(0,d)+"<!--post_end-->";
}
</script>
<body onLoad=a()></body>
Save it to a .html, edit start and end, and copy the result into a new file. It *should* work for most/all IE versions, because unlike firefox, they allow javascript to access external domains.