#!/usr/bin/perl use strict; use WWW::Mechanize; use WWW::Mechanize::Link; # Konfiguration my $usermail = "MEINE EMAIL"; # E-Mail-Adresse, die zum LogIn verwendet wird my $password = "MEIN PASSWORT"; # Passwort my $message = "SPAMMTEXT"; # Text, der Auf die Pinnwände geschrieben wird my $username = "MEIN NICKNAME"; # Dein Profilname my $entries = 200; # Anzahl der zu verschickenden Einträge # Weitere Globale Variablen my @queue; my $written = 0; my @done; my $agent = WWW::Mechanize->new(); $agent->agent_alias('Windows Mozilla'); # Durch 'Windows IE 6' oder 'Windows Mozilla' ersetzen $agent->get("http://www.spickmich.de/club/dce946a1b98e?showMembers&p=3"); # Einloggen $agent->submit_form( form_number => 1, fields => { usermail => $usermail, userpwd => $password, }); @queue = UsersFromMainpage(); while($written < $entries){ while($#queue > 0 && $written < $entries){ my $curuser = shift(@queue); if(MessageWrite($curuser) == 0){ print("Bei ".$curuser." besteht schon ein Eintrag\n"); push(@done, $curuser); } else { print("Nr. ".$written." Auf Pinnwand von ".$curuser." geschrieben\n"); push(@done, $curuser); $written++; } } @queue = UsersViaFriends(pop(@done)); } # Ausloggen $agent->submit_form( form_number => 1, fields => { action => 'logout', }); sub UsersFromMainpage{ my @users; $agent->get("http://www.spickmich.de/club/dce946a1b98e?showMembers&p=3"); foreach($agent->links()){ $_->url() =~ /\/profil\/([^\?\/]*)/; # Benutzernamen aus der Profil-URL holen push(@users, $1) if(defined $1); # und an @users anhängen } return(@users); } sub UsersViaFriends { my $user = shift; my @users; my $pre; $agent->get("http://spickmich.de/profil/".$user); $agent->find_link(url_regex=>qr/\/nachrichten\//)->url() =~ /\/nachrichten\/(.*)/; # User-ID herausfinden $agent->get("http://spickmich.de/profil/".$1); foreach($agent->links()){ $_->url() =~ /\/profil\/([^\?\/]*)/; # Benutzernamen aus der Profil-URL holen push(@users, $1) if(defined $1 && !($1 eq $pre)); # und an @users anhängen $pre = $1; } return(@users); } sub MessageWrite { my $user = shift; $agent->get('http://spickmich.de/profil/'.$user); if($agent->content() =~ /Pinnwand.+\/profil\/$username/){ return 0; } else { # Auf Pinnwand schreiben $agent->submit_form( form_number => 2, fields => { wallPostText => $message, }); return 1; } }