File Coverage

blib/lib/WebService/NextEpisode.pm
Criterion Covered Total %
statement 20 25 80.0
branch 1 2 50.0
condition 1 3 33.3
subroutine 6 6 100.0
pod 1 1 100.0
total 29 37 78.3


line stmt bran cond sub pod time code
1 1     1   50863 use strict;
  1         3  
  1         29  
2 1     1   5 use warnings;
  1         1  
  1         34  
3             package WebService::NextEpisode;
4 1     1   273 use LWP::Simple;
  1         52067  
  1         8  
5 1     1   682 use HTML::TreeBuilder::XPath;
  1         49685  
  1         12  
6              
7             # ABSTRACT: Fetches air date from next-episode.net
8             our $VERSION = '0.001'; # VERSION
9              
10 1     1   55 use Carp;
  1         2  
  1         245  
11              
12             =pod
13              
14             =encoding utf8
15              
16             =head1 NAME
17              
18             WebService::NextEpisode - Fetch air date from next-episode.net
19              
20              
21             =head1 SYNOPSIS
22              
23             $ perl -MWebService::NextEpisode -e 'print WebService::NextEpisode::of "Better Call Saul"'
24             Mon Jun 05, 2017
25              
26              
27             =head1 METHODS AND ARGUMENTS
28              
29              
30             =over 4
31              
32             =item of($show)
33              
34             Retrieves air date of next epsiode of $show
35              
36             =cut
37              
38             sub of {
39 1     1 1 85 my $show = shift =~ s/ /+/gr;
40 1         5 my $show_minus = $show =~ s/\+/-/gr;
41 1         3 my $page;
42 1   33     7 $page = get("http://next-episode.net/$show_minus")
43             // get("http://next-episode.net/site-search-$show.html");
44 1 50       166261 defined $page or die "Couldn't get it!";
45              
46 0           my $tree = HTML::TreeBuilder::XPath->new;
47 0           $tree->parse($page);
48              
49 0           my $next = $tree->findvalue( '/html/body//div[@id="next_episode"]');
50              
51 0           $next =~ s/.*Date:(.*)Season.*/$1/;
52              
53 0           return $next;
54             }
55              
56              
57              
58             1;
59             __END__