#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request;
use Config::INI::Simple;
use PerlTray;
use Win32::TieRegistry;
use File::Basename;
chdir(dirname(PerlTray::exe()));
$Registry->Delimiter("/");
my $balance = 0;
my $traffic = '0 Mb';
my $not_first = 0;
my $config = new Config::INI::Simple;
$config->read ("config.ini");
sub update {
my $user_agent = LWP::UserAgent->new;
$user_agent->timeout(10);
$user_agent->agent('RSBalancer/0.1.2');
my $http_request = HTTP::Request->new(GET => 'https://'.$config->{auth}->{login}.':'.$config->{auth}->{password}.'@rs.net.ua:8543/abonent/abonent/main.html');
my $result = $user_agent->request($http_request);
if ($result->is_success) {
local $_ = $result->content;
@balance[$i++] = $1 while(m/
(.*)<\/b><\/td>/ig);
$traffic = $1 if (m/Internet \((.*)\)/ig);
$balance = @balance[1]*-1;
undef $user_agent; undef $result; undef $http_request;
}
else {
if (!$not_first) {$not_first = 1; &update;} else {MessageBox($config->{lang}->{error_con}, $config->{lang}->{error_title}, MB_ICONERROR); $error = 1; sleep(1);}
}
}
sub autostart_get {
if ($Registry->{"HKEY_LOCAL_MACHINE/Software/Microsoft/".'Windows/CurrentVersion/Run//RSB'}) {return 1} else {return 0};
}
sub autostart_change {
if (&autostart_get){delete $Registry->{"HKEY_LOCAL_MACHINE/Software/Microsoft/".'Windows/CurrentVersion/Run//RSB'}}
else{$Registry->{"HKEY_LOCAL_MACHINE/Software/Microsoft/".'Windows/CurrentVersion/Run//RSB'}=PerlTray::exe()}
}
sub PopupMenu {
if (&autostart_get) {$as = $config->{lang}->{as_deact}} else {$as = $config->{lang}->{as_act}};
return [
[$config->{lang}->{menu_about}, sub {MessageBox(" Version: 0.0.2 \n Made by Vladimir Smirnoff \n http://orl.sumy.ua",'About RSBalancer',MB_ICONINFORMATION) }],
["--------"],[$as,\&autostart_change],["--------"],
[$config->{lang}->{menu_stat}, "Execute 'https://stat.rs.net.ua'"],
[$config->{lang}->{menu_exit}, "exit"]
]
}
sub Click {
if (!$updating) {
$updating = 1;
&update;
if (!$error){Balloon($config->{lang}->{bal_balance}.' '.$balance.' '.$config->{lang}->{bal_currency}."\n".$config->{lang}->{bal_traffic}.' '.$traffic, $config->{lang}->{bal_title}.' '.$config->{auth}->{login}, 'info', 1)};
undef $updating;
}
};
sub ToolTip {
return $config->{lang}->{tooltip};
}
RegisterHotKey($config->{settings}->{hotkey}, \&Click);
SetIcon('menu');
|