Voliacable статистика

Вот на досуге написал , парсит через персональный сайт абонента( https://stat.voliacable.com:8443/ktvinet/main.do )
Требует :

  1. SSL библиотеку
  2. notify-send

Под убутной SSL либу ставить так : sudo apt-get install libio-socket-ssl-perl

  1. #!/usr/bin/perl -w
  2. use strict;
  3. use LWP::UserAgent;
  4. use HTTP::Cookies;
  5. use Data::Dumper;
  6. use constant {
  7. USERNAME => 1,
  8. PASSWORD => '...',
  9. };
  10. my $ua = new LWP::UserAgent( agent => 'Mozilla/5.0 (X11; U; Linux i686;'.
  11. 'ru; rv:1.9.0.1) Gecko/2008072820'.
  12. 'Firefox/3.0.1',
  13. cookie_jar => HTTP::Cookies->new,
  14. timeout => undef);
  15. my ( $session_id ) = $ua->get( 'https://stat.voliacable.com:8443/ktvinet/main.do' )->content =~ m[jsessionid=([A-F0-9]+)">];
  16. my $response = $ua->post( "https://stat.voliacable.com:8443/ktvinet/j_security_check".
  17. ";jsessionid=$session_id",[
  18. 'j_username' => USERNAME,
  19. 'j_password' => PASSWORD ],);
  20. if ( $response->status_line eq '302 Moved Temporarily' ){
  21. $ua->get( 'https://stat.voliacable.com:8443/ktvinet/main.do' );
  22. $ua->get( 'https://stat.voliacable.com:8443/adv/main.html' );
  23. $ua->get( 'https://stat.voliacable.com:8443/ktvinet/vbb.do' );
  24. $ua->get( 'https://stat.voliacable.com:8443/ktvinet/jsfunc.js' );
  25. $ua->get( 'https://stat.voliacable.com:8443/adv/main.html' );
  26. my $date = join '-',( '00'..'31' )[[localtime]->[3]],('01'..'11')[[localtime]->[4]],[localtime]->[5]+1900;
  27. my $response = $ua->post( 'https://stat.voliacable.com:8443/ktvinet/stats.do',[
  28. 'dateFrom' => $date,
  29. 'dateTo' => $date,
  30. 'okBtn4' => '%C7%E0+%F2%E5%EA%F3%F9%E8%E9+%EC%E5%F1%FF%F6']);
  31. # Исключительная ситуация , частый запрос статистики
  32. unless( $response->is_success && $response->content =~ m,abonents\@voliacable\.com, ){
  33. my %h;
  34. ( $h{ UA } ) = $response->content =~ m[\(UkrEx\)\s+([0-9,-]+)];
  35. ( $h{ SAT } ) = $response->content =~ m[\(SatEx\)\s+([0-9,-]+)];
  36. ( $h{ MON } ) = $response->content =~ m[\(\d+\)\s+([0-9-,]+)];
  37. foreach my $key ( keys %h ){
  38. $h{ $key } =~ s/,/./;
  39. }
  40. $h{ SUM } = $h{ UA } + $h{ SAT };
  41. `notify-send -i ~/my/cash/icon/volia.gif -u normal -t 10000 "VOLIACABLE" "UkrEx : $h{UA} Мбайт \nSatEx : $h{SAT} Мбайт \nВсего : $h{SUM} Мбайт\nБаланс : $h{MON} грн \n"`;
  42. }else{
  43. system( 'notify-send -u critical "VOLIACABLE" "ошибка на стороне сервера"' );
  44. }
  45. }else{
  46. system( 'notify-send -u critical "VOLIACABLE" "ошибка на стороне сервера"' );
  47. }

Скрин http://img522.imageshack.us/img522/3536/myfu3.png
Выслушаю критику :)
ЗЫ: Что с подсветкой?

...

demonoid написал

ЗЫ: Что с подсветкой?

http://kiev.pm.org/node/229#comment-1051

demonoid, можно

demonoid, можно подробнее, как вы сделали фон (без границ окна) и само окно, какой тулкит, и прочее.

------------------

#!/usr/bin/perl
print("goto rulez!!!!!!1");

Не совсем понял

Не совсем понял вопрос , поподробней можно ? :)

На скриншоте

На скриншоте который вы выложили я увидел желтое окошко (в нижнем правом углу) как я понял это интерфейс вашей программы. Меня интересует какими средствами оно было создано.. или я что-то неправильно понял ?)
------------------

#!/usr/bin/perl
print("goto rulez!!!!!!1");

Жёлтое окошко ,

Жёлтое окошко , это notify-send , он есть в стандартном репозитории убунту