Тема:Архив Майл.ру Агента-Скачка Цель:выявление ошибок,оптимизация работы и интерфейса. Примечание: Скрипт написан на ActivePerl: http://www.activestate.com/activeperl/downloads Сохраняешь скрипт как script.pl Изменяешь my $email = '[email protected]'; my $pass = 'yourpass'; на свои значения, сохраняешь, запускаешь... В папке со скриптом должны начать появляться файлы с архивами под каждого юзера. Простите админы если что не так, я копался-копался но не нашёл нужной мне темы. Привет всем форумчанином! Недавно мне понадобился скрипт для скачиванию архива майл.ру агента,такой скрипт я нашёл здесь на сайте, ссылка: http://forum.antichat.ru/threadnav311596-1-10.html Так вот в процессе использования скрипта я нашёл некоторые ошибки. Первая: иногда не скачиваются архивы с некоторыми пользователями,при открытии файла переписки(переписки с архива сохраняются в формате html, у каждого юзера собственный файл с перепиской. Пример: [email protected]и в этом файле переписка с этим пользователем ) так вот переписки с некоторыми пользователями вообще не сохраняются,страница html пуста. Вторая: когда ставишь код для скачивания переписки с отдельным юзером,скрипт сохраняет лишь недавнюю переписку. (например переписку двух-летней давности не сохраняет) Знающие люди,пожалуйста просмотрите скрипт на наличие ошибок, кто может помогите с модернизацией интерфейса(сделать попроще и попривычней,чтоб открывалась как программа а не как команда).А вот и сам скрипт: /usr/bin/perl use LWP::UserAgent; use HTTP::Cookies; ################# Config ############### my $email = '[email protected]'; my $pass = 'yourpass'; ############### End Config ############## my $ua = LWP::UserAgent->new; $ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19"); my $cookie_jar = HTTP::Cookies->new(); $ua->cookie_jar($cookie_jar); sub logg { my ($data, $file) = @_; open(OUT, "> ".$file); print OUT "$data\n"; close(OUT); } sub authorization { my ($email, $pass) = @_; my ($login, $domain) = $email =~ /^(.+?)@(.+?)$/; $cookie_jar->clear(); my $ex = $ua->post('http://win.mail.ru/cgi-bin/auth', ['Login' => $login, 'Domain' => $domain, 'Password' => $pass]); if ($ex->headers_as_string() =~/Set-Cookie: Mpop=/) { return 1; } } sub get_users { my $ex = $ua->post('http://e.mail.ru/cgi-bin/mrimhistory?', ['mrim_hist_password' => $pass, 'PasswordAsk' => 'on'], Referer => 'http://e.mail.ru/cgi-bin/mrimhistory')->content(); my @allusers = $ex =~ /class=letavtor title=\"(.+?)\"/g; while(1) { my ($nextpage) = $ex =~ /<a href=\"(.+?)\" id=\"nextbut\">/; last if (!$nextpage); $ex = $ua->get('http://e.mail.ru/cgi-bin/'.$nextpage)->content(); my @users = $ex =~ /class=letavtor title=\"(.+?)\"/g; foreach (@users) { push(@allusers, $_); } } return @allusers; } sub get_messages { my ($user) = @_; my $i = 0; my $ex = $ua->get('http://e.mail.ru/cgi-bin/mrimhistory?mode=1&email='.$user)->content(); my @allmess = $ex =~/<td class=\"letavtor\"><nobr><span.+?>(.+?)<nobr><\/span><\/td>.+?<td class=lettem>(.+?)<\/td>.+?<td class=dat title=\"(.+?)\">/gs; while(1) { my ($nextpage) = $ex =~ /<a href=\"(.+?)\" id=\"nextbut\">/; last if (!$nextpage); $ex = $ua->get('http://e.mail.ru/cgi-bin/'.$nextpage)->content(); my @mess = $ex =~/<td class=\"letavtor\"><nobr><span.+?>(.+?)<nobr><\/span><\/td>.+?<td class=lettem>(.+?)<\/td>.+?<td class=dat title=\"(.+?)\">/gs; foreach (@mess) { push(@allmess, $_); } print "\t\tpage:".$i++."\n"; } my $arhive = ''; while(@allmess) { my $data = pop(@allmess); my $message = pop(@allmess); my $name = pop(@allmess); $arhive .= $name.' : '.$data."<br>\r\n".$message."<br><br>\r\n\r\n"; } logg($arhive, $user.'.html'); } authorization($email, $pass); my @allusers = get_users(); print "Users: ".scalar(@allusers)."\n\n\n"; foreach (@allusers) { print "\t".$_."\n"; get_messages($_); } скрипт для сохранения переписки с отдельным юзером: authorization($email, $pass); my @allusers = get_users(); get_messages('Сюда логин друга'); Скрипт приведённый выше вставляем вместо: authorization($email, $pass); my @allusers = get_users(); print "Users: ".scalar(@allusers)."\n\n\n"; foreach (@allusers) { print "\t".$_."\n"; get_messages($_); } Прошу кто может помочь,помогите. Кому не лень,кому не жалко. Очень требуется по работе. Буду чрезмерно благодаренЁ
код невозможно читать, отформатируй к тому же я по части Делфи/пхп. Подскажи мне где хранится переписка юзеров у агента - можт накорябаю тебе на делфи приложение
бля чел у тя код построчно? вот напиши |code| и дальше ПОСТРОЧНО свой код |/code| и вопрос мой актуален