File Coverage

blib/lib/WWW/B_Rail.pm
Criterion Covered Total %
statement 18 99 18.1
branch 0 20 0.0
condition 0 11 0.0
subroutine 6 15 40.0
pod 8 9 88.8
total 32 154 20.7


line stmt bran cond sub pod time code
1             package WWW::B_Rail;
2              
3             $WWW::B_Rail::VERSION = 0.01;
4              
5 1     1   10615 use 5.006;
  1         3  
  1         38  
6 1     1   5 use strict;
  1         2  
  1         28  
7 1     1   861 use LWP::Simple;
  1         110232  
  1         10  
8 1     1   1995 use HTML::TokeParser;
  1         12531  
  1         35  
9 1     1   978 use WWW::B_Rail::Cities::English;
  1         4  
  1         181  
10              
11 1     1   8 use vars qw(%params $found);
  1         2  
  1         1180  
12              
13             sub new {
14 0     0 0   my $proto = shift;
15 0   0       my $class = ref($proto) || $proto;
16 0           my $self = {};
17 0           for my $t (qw(LANGUAGE FROM TO DAY MONTH YEAR DOA HOUR MINUTE PARSER))
18 0           { $self->{$t} = ""; }
19 0           $self->{DATA} = {};
20 0           bless($self,$class);
21 0 0         if (@_)
22 0           { my %params = ();
23 0           %params = @_;
24 0           for my $key (keys %params)
25 0           { $self->{$key} = $params{$key}; }
26             }
27 0           return $self;
28             }
29              
30             sub from {
31 0     0 1   my $self = shift;
32 0 0         if (@_)
33 0           { $self->{FROM} = shift; }
34 0           return $self->{FROM};
35             }
36              
37             sub to {
38 0     0 1   my $self = shift;
39 0 0         if (@_)
40 0           { $self->{TO} = shift; }
41 0           return $self->{TO};
42             }
43              
44             sub day {
45 0     0 1   my $self = shift;
46 0 0         if (@_)
47 0           { $self->{DAY} = shift; }
48 0           return $self->{DAY};
49             }
50              
51             sub year {
52 0     0 1   my $self = shift;
53 0 0         if (@_)
54 0           { $self->{YEAR} = shift; }
55 0           return $self->{YEAR};
56             }
57              
58             sub hour {
59 0     0 1   my $self = shift;
60 0 0         if (@_)
61 0           { $self->{HOUR} = shift; }
62 0           return $self->{HOUR};
63             }
64              
65             sub minute {
66 0     0 1   my $self = shift;
67 0 0         if (@_)
68 0           { $self->{MINUTE} = shift; }
69 0           return $self->{MINUTE};
70             }
71              
72             sub doa {
73 0     0 1   my $self = shift;
74 0 0         if (@_)
75 0           { $self->{DOA} = shift; }
76 0           return $self->{DOA};
77             }
78              
79             sub fetch {
80 0     0 1   my $self = shift;
81 0           my $departurecity = $cities{uc $self->{FROM}};
82 0           my $arrivalcity = $cities{uc $self->{TO}};
83 0           my $url = "http://193.121.180.17/scripts/Pcgittb.exe?langue=$self->{LANGUAGE}&idO_r=$departurecity&idD_r=$arrivalcity&idV_r=0&hh=$self->{HOUR}&mn=$self->{MINUTE}&j=$self->{DAY}&m=$self->{MONTH}&a=$self->{YEAR}&DoA=$self->{DOA}&reseau=sncb&nombre=0";
84 0           my $page = get($url);
85 0   0       $self->{PARSER} = HTML::TokeParser->new(\$page) || die "Can't open location: $!\n";
86 0           my ($departure, $arrival, $time, $connections,$trains,$tag,$id);
87 0           while($tag = $self->{PARSER}->get_tag())
88 0 0 0       { if ($tag->[0] eq "input" && $tag->[1]{type} eq "checkbox" && $tag->[1]{name} eq "ch0")
      0        
89 0           { $id = $tag->[1]{value};
90 0 0         if ($id)
91 0           { $self->{PARSER}->get_tag("td");
92 0           $departure = $self->{PARSER}->get_text;
93 0           $self->{PARSER}->get_tag("td");
94 0           $arrival = $self->{PARSER}->get_text;
95 0           $self->{PARSER}->get_tag("td");
96 0           $time = $self->{PARSER}->get_text;
97 0           $self->{PARSER}->get_tag("td");
98 0           $connections = $self->{PARSER}->get_text;
99 0           $self->{PARSER}->get_tag("td");
100 0           $trains = $self->{PARSER}->get_text;
101 0           $self->{DATA}{$id} = {DEPARTURE=>$departure,ARRIVAL=>$arrival, TIME=>$time,CONNECTIONS=>$connections,TRAINS=>$trains};
102 0           for(1..4)
103 0           { $self->{PARSER}->get_tag("tr");
104 0           $self->{PARSER}->get_tag("td");
105 0           my $t = $self->{PARSER}->get_tag("input");
106 0           $id = $t->[1]{value};
107 0           $self->{PARSER}->get_tag("td");
108 0           $departure = $self->{PARSER}->get_text;
109 0           $self->{PARSER}->get_tag("td");
110 0           $arrival = $self->{PARSER}->get_text;
111 0           $self->{PARSER}->get_tag("td");
112 0           $time = $self->{PARSER}->get_text;
113 0           $self->{PARSER}->get_tag("td");
114 0           $connections = $self->{PARSER}->get_text;
115 0           $self->{PARSER}->get_tag("td");
116 0           $trains = $self->{PARSER}->get_text;
117 0           $self->{DATA}{$id} = {DEPARTURE=>$departure,ARRIVAL=>$arrival, TIME=>$time,CONNECTIONS=>$connections,TRAINS=>$trains};
118             }
119 0           last;
120             }
121             }
122             }
123 0           return $self->{DATA};
124             }
125              
126             1;
127             __END__