File Coverage

blib/lib/Finance/Bank/Fubon/TW.pm
Criterion Covered Total %
statement 12 52 23.0
branch 0 8 0.0
condition n/a
subroutine 4 7 57.1
pod 0 1 0.0
total 16 68 23.5


]*>([^<]+)!!) { (.*?)!!s) {
line stmt bran cond sub pod time code
1             # $File: //member/autrijus/Finance-Bank-Fubon-TW/lib/Finance/Bank/Fubon/TW.pm $ $Author: autrijus $
2             # $Revision: #2 $ $Change: 5938 $ $DateTime: 2003/05/17 22:34:34 $
3              
4             package Finance::Bank::Fubon::TW;
5 1     1   6833 use strict;
  1         3  
  1         63  
6 1     1   6 use Carp;
  1         3  
  1         82  
7             our $VERSION = '0.01';
8 1     1   1431 use WWW::Mechanize;
  1         365189  
  1         375  
9             our $ua = WWW::Mechanize->new(
10             env_proxy => 1,
11             keep_alive => 1,
12             timeout => 60,
13             );
14              
15             sub check_balance {
16 0     0 0   my ($class, %opts) = @_;
17 0           local $^W;
18              
19 0 0         croak "Must provide a password" unless exists $opts{password};
20 0 0         croak "Must provide a username" unless exists $opts{username};
21              
22 0           my $self = bless { %opts }, $class;
23              
24 0           $ua->get('https://net.fubonbank.com.tw/ebank/nbssl/nbauth/loginmain.asp');
25 0           $ua->field(USERID => $self->{username});
26 0           $ua->field(PWD => $self->{password});
27 0           $ua->submit;
28 0           $ua->get('https://net.fubonbank.com.tw/ebank/nbssl/nbauth/QryMain.asp');
29              
30 0           my $html = $ua->content;
31              
32 0           my @accounts;
33 0           while ($html =~ s!(\d+)
34 0           my ($id, $balance) = ($1, $2);
35 0           $balance =~ s!,!!g;
36 0           $balance = 0 + $balance;
37 0           push @accounts, (bless {
38             balance => $balance,
39             name => $id,
40             account_no => $id,
41             parent => $self,
42             }, "Finance::Bank::Fubon::TW::Account");
43             }
44              
45 0           return @accounts;
46             }
47              
48             package Finance::Bank::Fubon::TW::Account;
49             # Basic OO smoke-and-mirrors Thingy
50 1     1   21 no strict;
  1         3  
  1         632  
51 0     0     sub AUTOLOAD { my $self=shift; $AUTOLOAD =~ s/.*:://; $self->{$AUTOLOAD} }
  0            
  0            
52              
53             sub statement {
54 0     0     my $ac = shift;
55 0           my $code;
56              
57 0           $ua->get('https://net.fubonbank.com.tw/ebank/Nbssl/asp/VR002Htm.asp?acc=' . $ac->account_no);
58 0           $ua->submit;
59              
60 0           my $html = $ua->content;
61 0           my @transactions;
62 0           while ($html =~ s!
63 0           my @lines;
64 0           foreach my $line (split(/\n/, $1)) {
65 0 0         next unless $line =~ /
66 0           $line =~ s/^\s+//;
67 0           $line =~ s/\s+$//;
68 0           $line =~ s/<[^>]+> ?//g;
69 0           $line =~ s/^ $//g;
70 0 0         if ( $line =~ s/,// ) {
71 0           $line = 0 + $line;
72             }
73 0           push @lines, $line;
74             }
75 0           push @transactions, join(',', @lines) . "\n";
76             }
77              
78 0           return join("", @transactions);
79             }
80              
81             1;
82              
83             __END__