Well, if you want to do something yourself, here are a few things you can use:
First, right click->save target as, on the links to each page.
Then put them in a folder named "in", and in the folder containing it, put a perl script:
undef $/;
my $dir;
opendir $dir, "./in";
my $filename;
while($filename=readdir($dir))
{
if($filename ne "." and $filename ne "..")
{
print "./in/$filename\n";
my $in;
open($in,"<","./in/$filename");
my $contents = <$in>;
#while($contents =~ /\=\d+\.msg(\d+)#msg\d+\"\>(?!Quote from)/)
while($contents =~ /\<div class\=\"inner\" id\=\"msg_(\d+)\"\>/)
{
print "$1\n";
$contents = $';
}
print "~~~~~\n\n"
}
}
closedir $dir;
Use the following batch file (or command line command) to run it:
(replace <script name> with the actual one, if it contains spaces, put quotation marks around it)perl <script name>.pl > out.txt
It will create a file called "out.txt" in the directory with the perl script.
Then, use this HTML/javascript page, (It only works in Internet Explorer, as some other browsers don't support cross-domain scripts, for security reasons, but don't give an override)
<script language = "javascript">
function con()
{
try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}
return new XMLHttpRequest();
}
function quote(num)
{
r=con();
r.onreadystatechange=quoteReady;
r.open("GET","http://www.bay12forums.com/smf/index.php?action=quotefast;quote=" + num + ";xml;pb=message;mode=0",false);
r.send(null);
}
function quoteReady()
{
if(r.readyState == 4 && r.status == 200)
output.value+=r.responseText;
}
var quotes;
var locked=0;
function parse()
{
if(locked)
return;
quotes = input.value.split("\n");
parseline(0,quotes);
}
function parseline(i)
{
remainder.value="" + i + "/" + quotes.length;
if(i>=quotes.length)
{
locked=0;
return;
}
var q=("" + quotes[i]);
if(q.charAt(0)==".")
{
output.value+="\n\n~~~~~{"+q.substring(0,q.length-1)+"}~~~~~\n\n";
}
else
{
var str=q.replace(/\D+/,"");
if(str.length > 0)
{
quote(str);
output.value += "\n~~~~~~~~~~\n";
}
}
setTimeout("parseline("+(i+1)+")",200);
}
</script>
<textarea rows="10" cols="60" name="input"></textarea><br>
<input type="button" value="quote" onClick=parse()>
<input type="button" value="clear" onClick="input.value='';output.value=''">
<textarea rows="1" cols="40" name="remainder"></textarea><br>
<textarea rows="20" cols="120" name="output"></textarea>
Paste the contents of out.txt into the top box, and click "quote". It will list how many lines have been parsed, and how many it has, total. There is an enforced delay of 200 ms between each line, plus any time required to retrieve the data from the forum. This is because I do not want to slow everyone else down *too* much.
Once it finishes, the lower text box will contain something like this fragment of real output:
~~~~~~~~~~
<?xml version="1.0" encoding="ISO-8859-1"?>
<smf>
<quote>[quote author=Pnx link=topic=21545.msg232913#msg232913 date=1217100655]
Hmmm interesting...
You did seem to get my character down pretty well.
[spoiler]
So the way I see it, you'd have to be nuts to stick around here if there are so many zombies about, and if anyone did stick around they probably wouldn't last long, so I'm getting out and continuing my search.
I'm going to keep searching the nearby residential areas, seeing if I can find any signs of life. Avoiding unlife, same plan as last turn basically.
I'll do it as fast as possible while still being stealthy.
[//spoiler]
[/quote]</quote>
</smf>
~~~~~~~~~~
~~~~~{./in/2.htm}~~~~~
<?xml version="1.0" encoding="ISO-8859-1"?>
<smf>
<quote>[quote author=Keiseth link=topic=21545.msg233175#msg233175 date=1217125545]
Alright, Erik Irvine #2. You're using the character like I had hoped! Very awesome job so far.
[Spoiler]
Erik is pretty disturbed about a zombie's head exploding right near him. Or he would be, but there's an audience now, and he's not going to look like a coward when there are people around. He reasons that during a crisis like this, people have to keep their hopes and confidence up, so he's going to pretend to be a little bit bad-ass and ignore that he almost got his thigh bitten off, though he is thankful that this lady just stopped him from becoming an Erik sandwich.
Action: Since the nice rifle-carrying lady just saved him, he isn't going to take off alone. The second worst thing to be in a zombie apocalypse is alone. The worst being <i>a zombie</i>, of course. So he'll do the heroic thing and stay with her until her husband arrives, at least.
Goals: Finding people would still be important, but he's not going to leave anybody behind if he can help it. Plus, now that there's somebody else around, he feels much safer (even if he acts like, and sincerely believes he's protecting them.)
Approach: Still "Let's do this!" But with a priority on protecting people over killing zombies, as you may have guessed. Though he may be a tad dumb, that recent scare is going to make him be wary of the path a bullet will take from a rifle before he goes running up to smash zombies again.
[//Spoiler]
[/quote]</quote>
</smf>
~~~~~~~~~~
<?xml version="1.0" encoding="ISO-8859-1"?>
<smf>
<quote>[quote author=LeoLeonardoIII link=topic=21545.msg233337#msg233337 date=1217142844]
Few have done their turn 2 actions, which is what I expected from the weekend. I'll post a turn 2 results on Monday morning, giving you guys all weekend. That's probably how it'll go every weekend. Just a heads up so you don't think I've forgotten you all.
[/quote]</quote>
</smf>
~~~~~~~~~~
<?xml version="1.0" encoding="ISO-8859-1"?>
<smf>
<quote>[quote author=Torak link=topic=21545.msg233365#msg233365 date=1217144857]
[quote author=LeoLeonardoIII link=topic=21545.msg233337#msg233337 date=1217142844]
Few have done their turn 2 actions, which is what I expected from the weekend. I'll post a turn 2 results on Monday morning, giving you guys all weekend. That's probably how it'll go every weekend. Just a heads up so you don't think I've forgotten you all.
[/quote]
Monday?
Sunday would be better, it's never a good idea to hold up a game for a few people who have problems with making a strategy in 24+ hours.
[/quote]</quote>
</smf>
~~~~~~~~~~
<?xml version="1.0" encoding="ISO-8859-1"?>
<smf>
<quote>[quote author=Kagus link=topic=21545.msg233375#msg233375 date=1217146210]
Yeeg, forgot to do my stuff. I fully intended to do it, but that was a couple hours ago...
[spoiler]Well, I've already got some sweet loot, so I suppose it's time to put on some warm clothes and try to find a way outside. Then it's time to look for other survivors to serve as traveling companions for getting to the garrison.[//spoiler]
[/quote]</quote>
</smf>
~~~~~~~~~~
<?xml version="1.0" encoding="ISO-8859-1"?>
<smf>
<quote>[quote author=DreaDFanG link=topic=21545.msg233411#msg233411 date=1217151191]
Indonesian War Minister didnt post an action yet...
[/quote]</quote>
</smf>
~~~~~~~~~~
Containing the post itself, exactly as you would get it in the non-WYSIWYG editor, if you quoted it. Plus a layer of XML around it, added by the forum software. Plus a few ~s, added by the javascript itself.
This fairly long and convoluted process is faster, easier, and probably strains the server less(although, it would be putting all of it into a far shorter ammount of time...) than manually quoting each post to get the code of it, and this works on locked topics, too, because locked topics only prevent you from posting in them, or getting convenient quote links generated automatically.
Finally, you need the ability to read the section of the forum in the first place, but it can be used *anywhere* that you can read.
(Edit: In samples, /spoiler ended the spoiler, *even though it was within code tags*)