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/^ $//g;
if ( $line =~ s/,// ) {
$line = 0 + $line;
( run in 2.573 seconds using v1.01-cache-2.11-cpan-5c0b1e786e0 )