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 )