))))))))
Скрипты
Сообщений 1 страница 5 из 5
Поделиться22008-07-22 09:16:34
Все Perl Скрипты которые у меня есть не работают.
Поделиться32008-08-02 13:07:28
СКРИПТ ДЛЯ СОЗДАНИЯ АЛЬБОМОВ
#!/usr/bin/perl -w
use LWP 5.64;
use HTTP::Cookies;
use HTTP::Request::Common;
my $use_proxy = 'http://127.0.0.1:8118/'; # proxy address here
my $login_mail = 'mail';
my $login_pass = 'pass';
my $userid = 11323743; # YOUR User ID here!!
# leave this zero if you want to create new albums (as much as @img_dirs)
# set this -1 if you want to create new albums (as much as all images)
# set album id if you want to post in an existing one
my $album_id = -1;
my $groupid = 1495173; # vitcim's GID
my $useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1[тут ";"и")"] Firefox/2.0.0.0';
# ONE dir per album. More dirs, more new albums
my @img_dirs = ("./nigra","./img2","./img3");
# new albums names (will use random)
my @album_names = ('NIGRAS1','NIGRAS2','NIGRAS3','NIGRAS4','NIGRAS5','NIGRAS6');
my $url_login = 'http://vkontakte.ru/login.php';
my $url_photos = 'http://vkontakte.ru/photos.php';
my $url_upload = 'http://cs218.vkontakte.ru/upload.php';
my $ua = LWP::UserAgent->new(keep_alive => 1, requests_redirectable => [ 'POST' ]);
$ua->proxy('http', $use_proxy) if $use_proxy;
$ua->agent($useragent);
$ua->cookie_jar({});
print 'Login... ';
my $response = $ua->post($url_login,
[ 'email' => $login_mail,
'pass' => $login_pass,
]);
die 'Login error -- ', $response->status_line
unless $response->is_success or $response->code == 302;
print "Success.\n";
srand (time ^ $$);
L0: foreach $img_dir (@img_dirs) {
# read dir with content
opendir(DIR,$img_dir) or do { warn "opendir error!"; next L0; };
@images= readdir(DIR);
closedir(DIR);
# start process if we want to post in the existing album
my $aid = $album_id;
goto L1 if $album_id;
# create new album
my $album_name = $album_names[int(rand($#album_names + 1))];
print "Create album ($album_name)... ";
$aid = new_album($ua,$url_photos,$album_name,$album_name,$groupid);
L1: foreach $img_name (@images) {
next if(($img_name eq ".") || ($img_name eq ".."));
if ($album_id < 0) {
print "Create album ($img_name)... ";
$aid = new_album($ua,$url_photos,$img_name,$img_name,$groupid);
next if ($aid<0);
}
print "IMAGE: $img_dir/$img_name\n";
# get server URL
$response = $ua->get("$url_photos\?act=add\&id=$aid");
do { warn "Get images server URL error -- ", $response->status_line; next L1; }
unless $response->is_success or $response->code == 302;
$_ = $response->content =~ m|name\s*=\s*\"upload\"\s*action\s*=\s*\"([^\"]+)\"|ig;
$url_upload = $1;
# get hash values
$_ = $response->content;
my ($hash) = /name=\"hash\" value=\"(\w+)\" /;
my ($rhash) = /name=\"rhash\" value=\"(\w+)\" /;
# send image
my $req = POST $url_upload, Content_Type => 'multipart/form-data',
Content => [
act => 'do_add',
id => $aid,
aid => $aid,
gid => $groupid,
mid => $userid,
hash => $hash,
rhash => $rhash,
file1 => [ "$img_dir/$img_name" ]
];
$response = $ua->request($req);
do { warn "Upload error -- ", $response->status_line; next L1; }
unless $response->is_success or $response->code == 302;
$_ = $response->content;
# now set newly loaded image as a cover of the album
$response = $ua->get("$url_photos\?act=editphotos\&id=$aid\&u=1");
$_ = $response->content;
@_ = /name=\"cover\" value=\"-(\w+)\"/gm;
my $img_id = "-$_[$#_]";
my $img_no = $#_ + 1;
$response = $ua->post("$url_photos\?act=editphotos\&id=$aid\&u=1",
[ 'act' => 'do_editphotos',
'id' => $aid,
"cover" => $img_id,
]);
do { warn " Cover setting error -- ", $response->status_line; next L1; }
unless $response->is_success or $response->code == 302;
sleep 1;
}
}
sub new_album {
# create new album
my ($agent,$url,$album_name,$album_desc,$gid) = @_;
print "Create album ($album_name)... ";
my $response = $agent->post( $url,
[ 'act' => 'create', 'gid' => $gid,'name' => $album_name, 'desc' => $album_desc, 'visible' => '1', ]
);
do { warn " Create new album error -- ", $response->status_line; return -1; }
unless $response->is_success or $response->code == 302;
print "Success.\n";
$response = $ua->get("$url\?gid=$gid");
$_ = $response->content;
@_ = /\"photos.php\?act=album&id=(\d+)\"/gm;
# return album ID
return $_[$#_];
}
Отредактировано Кот Бегемот (2008-08-02 13:11:41)
Поделиться42008-08-02 13:10:01
Было бы желательно объяснить ЧОЧО куда...
Поделиться52008-08-02 13:10:33
Вайпалка АЛЬБОМОВ Вконтакте (vkalbum.pl)
Как юзать
* Качаем Perl (для винды - ActivePerl : http://activestate.com/downloads/)
* качаем скрипт
* настраиваем :
$use_proxy = 'http://127.0.0.1:8080/'; - прокся
$login_mail = 'mail@mail.ru'; - мыло твоего акка
$login_pass = 'pass'; - пасс
$userid = 111; - ID ТВОЕГО акка
$groupid = 111; - ID жертвы (группы)
$album_id = 111; - ID альбома для загрузки нигров
ВНИМАНИЕ!! Если выставить $album_id = 0; то скрипт будет создавать кучу новых альбомов (столько же сколько указано далее)
@img_dirs = ("./img1","./img2","./img3"); - каталоги с ниграми. Если создавать новые альбомы их будет создано столько сколько этих каталогов, если постим в один альббом, будут поститься все нигры из этих папок
@album_names = ('NIGRAS1','NIGRAS2','NIGRAS3','NIGRAS4','NIGRAS5','NIGRAS6'); - имена альбомов. берется по одному рандомно
* запускаем скрипт:
# perl vkalbum.pl
АСПЕКТЫ
чтобы скрипт вайпал, нужны права постить пикчи в альбом.
Создаете каталоги "./img1","./img2","./img3" (из переменной @img_dirs) и накидайте в каждый нигров
Чтобы создавался один альбом на каждого нигра установите
$album_id = -1