Информатор о состоянии баланса Мегафон

Информация о состоянии баланса будет получаться из web-интерфейса управления аккаунтом и писаться в файлик, чтобы оттуда без труда забирать приложением

Мегафон

#!/usr/bin/perl -w
use POSIX;

#============ Настройки скрипта ===============================
# URL по которому получаем ID сессии
my $url1 = "https://serviceguide.megafonvolga.ru/ps/scc/php/check.php";
# URL по которому получаем информацию об аккаунте
my $url2 = "https://serviceguide.megafonvolga.ru/SCWWW/ACCOUNT_INFO";
# Логин и пароль для входа в сервисгид
my $login = "927***";
my $password = "****";
# Путь до wget
my $wget_path = "/usr/bin/wget";
# Временный файл
my $balance_tmp_file = "/tmp/megafon.balance";
# Файл, в который пишется результат
my $balance_file = "/var/log/megafon.info";
# Файл лога
my $log_file = "/var/log/balance.log";

# Загружаем XML с id сессии
my $command = "$wget_path -o /dev/null -O $balance_tmp_file --post-data=\"LOGIN=$login&PASSWORD=$password\" \"$url1\"";
`$command`;
open (A,$balance_tmp_file);
my ($session_id) = <A>;
close(A);
chomp($session_id);
loger("Download megafon session_id XML ",$session_id);

# Парсим ID сессии
$session_id =~s|<SESSION_ID>(.*)</SESSION_ID>|$1|gi;
loger("Parsing megafon session_id XML ",$session_id=~/[\d\w\.]+/gi);

# Загружаем информацию об аккаунте, передав ID сессии
$command = "$wget_path -o /dev/null -O $balance_tmp_file --post-data=\"SESSION_ID=$session_id\" \"$url2\"";
`$command`;

# Получаем баланс и записываем в результат
open (A,$balance_tmp_file);
my $balance = join "", <A>;
close(A);
chomp($balance);
loger("Download megafon account info ",$balance);

# Парсим баланс
loger("Parsing megafon account info",$balance=~/balance.*?>.*?([\d\.]+).*?</gim);

`echo "balance:$1" > $balance_file`;

# Убираем за собой
unlink($balance_tmp_file);

sub loger{
    my ($string, $result) = @_;
    my $now_string = strftime "%a %b %e %H:%M:%S %Y", localtime;
    open(B,">>".$log_file);
    if($result){
        print B "[Ok] ".$now_string." $string\n";
    }
    else{
        print B "[FAILED] ".$now_string." $string\n";exit(0);
    }
    close(B);
}

Сей скрипт так же пишет логи о своей работе вида

[Ok] Срд Янв  5 17:50:02 2011 Download megafon session_id XML
[Ok] Срд Янв  5 17:50:02 2011 Parsing megafon session_id XML
[Ok] Срд Янв  5 17:50:04 2011 Download megafon account info
[Ok] Срд Янв  5 17:50:04 2011 Parsing megafon account info

Добавить комментарий