#!/usr/bin/perl # # ver. 07.07.2004 /2 для формата статистики 1.00, 1.10 и 2.00 # # Pavel Yakovlev, hac@subscribe.ru # # Скелет скрипта для автоматической выборки статистики по рассылке # https://subscribe.ru/author/robostat.pl # # Для работы требуется установленный libwww-perl # c CPAN http://www.perl.com/CPAN/ # # Вызов: robostat.pl код.рассылки # Код возврата: 0 - успешно # 1 - прочие проблемы # 2 - ошибка выборки статистики # 3 - не поддерживаемая версия статистики # # Без модификации просто выдает статистику на STDOUT # use strict; use integer; use LWP::UserAgent; $|=0; my $URLbase='https://subscribe.ru/stat'; my $StatFile='d.text'; # # MAIN # if (@ARGV != 1) { die "Usage: $0 list.id\n"; exit(1); } my ($id) = @ARGV; my $url = $URLbase.'/'.$id.'/'.$StatFile; my $ua = new LWP::UserAgent; $ua->agent('RoboStat/1.0'); # hee :-) my $req = new HTTP::Request GET => $url; $req->header('Accept' => 'text/html, text/plain'); my $result = $ua->request($req); if (! $result->is_success) { print STDERR '$0: FATAL: ',$result->code,' for ',$url,"\n"; exit(2); } my $content = $result->content; my %stat = map { m/^[a-zA-z]/o ? split(/\s*:\s*/o,$_,2) : () } split(/\r?\n/,$content); if (exists($stat{'1.00'}) || exists($stat{'1.10'})) { my @stat = split(/\r?\n/,$content); %stat = ( 'Version' => $stat[0] ,'Subscribers' => $stat[1] ,'Dynamo' => $stat[2] ,'Date' => $stat[3] ,'List-Id' => $stat[4] ); } elsif ($stat{'Version'} eq '2.00') { # ok } else { print STDERR '$0: FATAL: unsupported format',"\n",$content,"\n"; exit(3); } ### сделать хоть что-то. замените на то что вам надо print "Версия статистики $stat{'Version'} К-во подписчиков $stat{'Subscribers'} Изменение $stat{'Dynamo'} Дата $stat{'Date'} Рассылка $stat{'List-Id'} "; ### exit(0);