Business-UTV
view release on metacpan or search on metacpan
lib/Business/UTV.pm view on Meta::CPAN
package Business::UTV;
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common;
use URI::Escape;
our $VERSION = 0.05;
our $errstr = undef;
sub login
{
my ( $class , $username , $password , $atts ) = @_;
errstr( "" );
my $name = $atts->{"name"};
my $login_url = "https://ssl2.u.tv/clicksilveraccountie/gologin.asp";
my $usage_url = "https://ssl2.u.tv/clicksilveraccountie/onlineusage.asp?id=$username";
my $newindex_url = "https://ssl2.u.tv/clicksilveraccountie/newindex.asp";
my $statement_url = "https://ssl2.u.tv/clicksilveraccountie/statementbeta.asp";
my $ua = LWP::UserAgent->new();
my $login_request = $ua->post( $login_url ,
{ "id" => $username , "password" => $password } ,
"Referer" => $newindex_url );
if( $login_request->is_error() )
{
errstr( "Login failed : http problem" );
return undef;
}
my $login = $login_request->content();
my %data = ();
unless( $login =~ /\Q$name\E/ )
{
errstr( "Login failed : your name '$name' not matched" );
return undef;
}
while( $login =~ /<input\s+type\s*=\s*hidden\s+name\s*=\s*([^ ]+)\s+value\s*=\s*['"]?([^'">]+)['"]?>/ig )
{
$data{$1}=$2;
}
my %self = %$atts;
$self{"ua"} = $ua;
$self{"login_url"} = $login_url;
$self{"usage_url"} = $usage_url;
$self{"statement_url"} = $statement_url;
$self{"username"} = $username;
$self{"password"} = $password;
$self{"_data"} = \%data;
bless( \%self , $class );
}
sub usage
( run in 1.448 second using v1.01-cache-2.11-cpan-acf6aa7dc9e )