Finance-Bank-Fubon-TW

 view release on metacpan or  search on metacpan

lib/Finance/Bank/Fubon/TW.pm  view on Meta::CPAN

# $File: //member/autrijus/Finance-Bank-Fubon-TW/lib/Finance/Bank/Fubon/TW.pm $ $Author: autrijus $
# $Revision: #2 $ $Change: 5938 $ $DateTime: 2003/05/17 22:34:34 $

package Finance::Bank::Fubon::TW;
use strict;
use Carp;
our $VERSION = '0.01';
use WWW::Mechanize;
our $ua = WWW::Mechanize->new(
    env_proxy => 1, 
    keep_alive => 1, 
    timeout => 60,
); 

sub check_balance {
    my ($class, %opts) = @_;
    local $^W;

    croak "Must provide a password" unless exists $opts{password};
    croak "Must provide a username" unless exists $opts{username};

    my $self = bless { %opts }, $class;

    $ua->get('https://net.fubonbank.com.tw/ebank/nbssl/nbauth/loginmain.asp');
    $ua->field(USERID => $self->{username});
    $ua->field(PWD => $self->{password});
    $ua->submit;
    $ua->get('https://net.fubonbank.com.tw/ebank/nbssl/nbauth/QryMain.asp');

    my $html = $ua->content;

    my @accounts;
    while ($html =~ s!<TR.*?<br>(\d+)</td><td[^>]*>([^<]+)</td>!!) {
	my ($id, $balance) = ($1, $2);
	$balance =~ s!,!!g;
	$balance = 0 + $balance;
        push @accounts, (bless {
            balance    => $balance,
            name       => $id,
            account_no => $id,
            parent     => $self,
        }, "Finance::Bank::Fubon::TW::Account");
    }

    return @accounts;
}

package Finance::Bank::Fubon::TW::Account;
# Basic OO smoke-and-mirrors Thingy
no strict;
sub AUTOLOAD { my $self=shift; $AUTOLOAD =~ s/.*:://; $self->{$AUTOLOAD} }

sub statement {
    my $ac = shift;
    my $code;

    $ua->get('https://net.fubonbank.com.tw/ebank/Nbssl/asp/VR002Htm.asp?acc=' . $ac->account_no);
    $ua->submit;

    my $html = $ua->content;
    my @transactions;
    while ($html =~ s!<tr >(.*?)</tr>!!s) {
	my @lines;
	foreach my $line (split(/\n/, $1)) {
	    next unless $line =~ /<td/;
	    $line =~ s/^\s+//;
	    $line =~ s/\s+$//;
	    $line =~ s/<[^>]+> ?//g;
	    $line =~ s/^&nbsp$//g;
	    if ( $line =~ s/,// ) {
		$line = 0 + $line;



( run in 2.573 seconds using v1.01-cache-2.11-cpan-5c0b1e786e0 )