Webstatt.org - Community seit 2006 - 2012 (2024?)

phpBB Bot

Avatar user-271
07.10.2006 21:45

Bisher nur neuer Thread und neuer Post....man muss das forum bzw. den thread wissen um einen neuen post hinzuzufügen...er sucht noch nicht raus...vielleicht bau ich das noch ein...weiss ich aber noch nicht.

imo wird er bei mir gebraucht um Vertretungen an unserer Schule automatisch in ein phpBB forum zu schreiben.

Um diesen Bot zu benutzen brauch man allerdings einen user-129utzernamen, nachdem er sich einloggt.

das LWP Modul hab ich absichtlich nicht benutzt. Und nachdem das Socket modul standard ist, kann dieses Script überall ausgeführt werden.

wenn ich die Zeit finde, wird das ganze noch oo programmiert *g* hatte mich auch shcon mit artemis unterhalten *g* anfänge sind da...
bisher sind es ja nur zusammengestückelte subs mit globalen variablen...also nicht schön gemacht...es funktioniert aber ;D

Hier das grobe script:
#!/usr/bin/perl
use Socket;

my $sid='';
my $base = 'http://ihredomain.de/phpbb/';
my $username = 'username';
my $password = 'password';

sub GrabURL {
my $method = $url = $post = $additionalHeader = $content = '';

$method = shift;
$url = shift;
$post = shift;

$url =~ s/^http:\/\///i;

my ($host, $res) = $url =~ m/^(.+?)(\/.*)/;
return unless defined($host) && defined($res);

if($method eq 'GET'zwinkern {
$method = 'GET';
#$url = $url."?".$post;
} else {
$method = 'POST';
$additionalHeader = "Content-Type: application/x-www-form-urlencoded\r\nContent-Length: ".length($post)."\r\n";
$content = $post;
}

my $r =
$method." $res HTTP/1.0\r\n" .
"Host: $host\r\n" .
$additionalHeader .
"\r\n" .
$content .
"\r\n";
#print $r."\n";
my $port = 80;
if($host =~ m/(.*)traurig\d+)$/){ $host = $1; $port = $2;}

my $internet_addr = inet_aton($host) or return;
socket(Server, PF_INET, SOCK_STREAM, getprotobyname('tcp'zwinkern) or return;
setsockopt(Server, SOL_SOCKET, SO_RCVTIMEO, 10000);

connect(Server, sockaddr_in($port, $internet_addr)) or return;
select((select(Server), $| = 1)[0]);
print Server $r;

my $answer = join '', <Server>;
close (Server);

return $answer;
}

sub URLEncode {
my $theURL = $_[0];
$theURL =~ s/([\W])/"%" . uc(sprintf("%2.2x",ord($1)))/eg;
return $theURL;
}

sub connect {
my $username = shift;
my $password = shift;

my $content = 'username='.&URLEncode($username).'&password='.&URLEncode($password).'&redorect=&login=Login&autologin=';

$res = &GrabURL('POST',$base.'login.php',$content);
$res =~ m/Location: index\.php\?sid=(.*?)\n/i;

$sid = $1;

return $1;
}

sub newThread {
my $forum = shift;
my $subject = shift;
my $text = shift;

my $content = 'mode=newtopic&f='.$forum.'&preview=Vorschau&post=Absenden&subject='.&URLEncode($subject).'&message='.&URLEncode($text).'&disable_html=&disable_bbcode=&disable_smilies=&notify=&topictype=0';

$res = &GrabURL('POST',$base.'posting.php?sid='.$sid,$content);

return 1;
}

sub newPost {
my $thread = shift;
my $subject = shift;
my $text = shift;

my $content = 'mode=reply&t='.$thread.'&preview=Vorschau&post=Absenden&subject='.&URLEncode($subject).'&message='.&URLEncode($text).'&disable_html=&disable_bbcode=&disable_smilies=&notify=';

$res = &GrabURL('POST',$base.'posting.php?sid='.$sid,$content);

return true;
}



#------------- Usage --------------#

&connect($username,$password);
&newThread(<forum id>,'<der Titel>','<der Text>'zwinkern;
&newPost(<thread id>,'<der Titel>','<der Text>'zwinkern;

#!/bin/bash
traurig){ neutral:& };: