I had a Linux guru I know whip this up for me a while back and I thought it may be interesting to some of you.
It bascially posts entire threads of attachments in a vB2 forum automagically with some minor edits of the perl script. You just gotta add your login and pass in the right fields,change the
forum URLs to the forum you're in, and change the forumid to the forum you want to start the thread in.
You'll need to have perl installed. *nix guys should be fine; Windows guys can get perl free at
www.activestate.com.
This is a cmd line program. No fancy GUI, no mouse clicks. You run the script like so in a cmd window:
perl scriptname.pl c:\path\to\binaries(jpg,etc)\*.(extension)
A thread of porn pics would be like so, assuming your pics dir is c:\foo and you named the pl file pr0nscript.pl.
perl pr0nscript.pl c:\foo\*.jpg
and watch your thread go up!
This won't be so useful at this forum, but it's essential to me at others.
Code:
#!/usr/bin/perl -w
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Request::Common;
use HTML::TokeParser;
use File::DosGlob;
## Username and password
my $uname = "yes";
my $pass = "diceisgod";
## You'll need to figure out these next four on your own :P
## For vBulletin boards you should just have to change the hostname
## to whatever.foo.com ... I think ;)
## You'll also need to change the forumID
my $loginURL = "http://forum.somewhere.net/member.php";
my $newThreadURL = "http://forum.somewhere.net/newthread.php";
my $replyThreadURL = "http://forum.somewhere.net/newreply.php";
my $forumID = "37";
## Optional threadid. If this is "0" the script will create its own thread,
## otherwise it will attempt to reply to the threadid you specify.
my $threadid = "0";
## A subject for the thread
my $subject = "title of thread";
## This message will be in the first post, followed by the number 1
my $origMessage = "Technophilia biatch!";
# How long to wait between posts
my $sleeptime = 30;
## *******************************************
## *** Don't edit anything below this line ***
## *******************************************
@ARGV = map {
my @g = File::DosGlob::glob($_) if /[*?]/;
@g ? @g : $_;
} @ARGV;
my @temp = sort(@ARGV);
@ARGV = @temp;
my $counter = 0;
my $ua = LWP::UserAgent->new;
$ua->cookie_jar(HTTP::Cookies->new( {} ));
my $res = $ua->post($loginURL,
{
username => $uname,
password => $pass,
action => "login", # These two are specific
url => "/" # to the forum
} );
print "Success!\n\n";
if($threadid eq "0") {
$res = $ua->request( POST($newThreadURL,
Content_Type => 'form-data',
Content => [
forumid => $forumID,
f => $forumID,
action => "postthread",
subject => $subject,
message => $origMessage . "\n\n" . $counter,
parseurl => "yes",
disablesmilies => "no",
email => "no",
signature => "yes",
MAX_FILE_SIZE => "2097152",
attachment => [$ARGV[$counter]],
postpoll => "no",
submit => "Submit New Thread"
] ));
$counter++;
if($res->is_success) {
print "Thread posted, looking for threadid...\n";
}
my $parser = HTML::TokeParser->new(\$res->as_string);
while(my $token = $parser->get_tag("a")) {
if($token->[1]{href} =~ /showthread.php/) {
$threadid = $token->[1]{href} || "-";
$threadid =~ s/^.*threadid=//;
print "Got it: $token->[1]{href} : $threadid \n\n";
} else {
print "Failed: $token->[1]{href} \n\n";
exit 1;
}
}
sleep($sleeptime);
} else {
print "Will post in already existing thread: $threadid \n";
}
for($counter; $counter < $#ARGV + 1; $counter++) {
$res = $ua->request( POST($replyThreadURL,
Content_Type => 'form-data',
Content => [
forumid => $forumID,
f => $forumID,
action => "postreply",
threadid => $threadid,
message => "$counter",
parseurl => "yes",
disablesmilies => "no",
email => "no",
signature => "yes",
MAX_FILE_SIZE => "2097152",
attachment => [$ARGV[$counter]],
postpoll => "no",
submit => "Submit Reply"
] ));
print "Posted $counter \n";
sleep($sleeptime);
}
I did not write this, and cannot support it. I just wanted to throw it out there for others to use. I have the permission from the author to repost the code. He's a linux guy...he doesn't believe in hoarding code. ;)
edit:stupid smilies.