| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
package Net::Async::WebSearch::Result; |
|
2
|
|
|
|
|
|
|
our $VERSION = '0.002'; |
|
3
|
|
|
|
|
|
|
# ABSTRACT: Single web search result record |
|
4
|
6
|
|
|
6
|
|
35
|
use strict; |
|
|
6
|
|
|
|
|
24
|
|
|
|
6
|
|
|
|
|
202
|
|
|
5
|
6
|
|
|
6
|
|
22
|
use warnings; |
|
|
6
|
|
|
|
|
9
|
|
|
|
6
|
|
|
|
|
238
|
|
|
6
|
6
|
|
|
6
|
|
20
|
use URI (); |
|
|
6
|
|
|
|
|
7
|
|
|
|
6
|
|
|
|
|
2992
|
|
|
7
|
|
|
|
|
|
|
|
|
8
|
|
|
|
|
|
|
sub new { |
|
9
|
88
|
|
|
88
|
0
|
273
|
my ( $class, %args ) = @_; |
|
10
|
|
|
|
|
|
|
my $self = { |
|
11
|
|
|
|
|
|
|
url => $args{url}, |
|
12
|
|
|
|
|
|
|
title => $args{title}, |
|
13
|
|
|
|
|
|
|
snippet => $args{snippet}, |
|
14
|
|
|
|
|
|
|
provider => $args{provider}, |
|
15
|
|
|
|
|
|
|
rank => $args{rank}, |
|
16
|
|
|
|
|
|
|
score => $args{score}, |
|
17
|
|
|
|
|
|
|
published_at => $args{published_at}, |
|
18
|
|
|
|
|
|
|
language => $args{language}, |
|
19
|
|
|
|
|
|
|
nsfw => $args{nsfw}, |
|
20
|
|
|
|
|
|
|
domain => $args{domain}, |
|
21
|
|
|
|
|
|
|
fetched => $args{fetched}, |
|
22
|
|
|
|
|
|
|
raw => $args{raw}, |
|
23
|
|
|
|
|
|
|
extra => $args{extra} || {}, |
|
24
|
88
|
|
100
|
|
|
543
|
}; |
|
25
|
88
|
|
|
|
|
172
|
bless $self, $class; |
|
26
|
|
|
|
|
|
|
# Auto-derive domain from URL if not supplied. |
|
27
|
88
|
50
|
33
|
|
|
241
|
if ( !defined $self->{domain} && defined $self->{url} ) { |
|
28
|
88
|
|
|
|
|
94
|
my $u = eval { URI->new( $self->{url} ) }; |
|
|
88
|
|
|
|
|
267
|
|
|
29
|
88
|
50
|
33
|
|
|
26423
|
if ( $u && $u->can('host') ) { |
|
30
|
88
|
|
|
|
|
683
|
my $h = eval { $u->host }; |
|
|
88
|
|
|
|
|
145
|
|
|
31
|
88
|
50
|
33
|
|
|
1969
|
$self->{domain} = $h if defined $h && length $h; |
|
32
|
|
|
|
|
|
|
} |
|
33
|
|
|
|
|
|
|
} |
|
34
|
88
|
|
|
|
|
293
|
return $self; |
|
35
|
|
|
|
|
|
|
} |
|
36
|
|
|
|
|
|
|
|
|
37
|
112
|
|
|
112
|
1
|
3078
|
sub url { $_[0]->{url} } |
|
38
|
1
|
|
|
1
|
1
|
6597
|
sub title { $_[0]->{title} } |
|
39
|
80
|
|
|
80
|
1
|
257
|
sub snippet { $_[0]->{snippet} } |
|
40
|
91
|
|
|
91
|
1
|
443
|
sub provider { $_[0]->{provider} } |
|
41
|
140
|
50
|
|
140
|
1
|
362
|
sub rank { @_ > 1 ? ($_[0]->{rank} = $_[1]) : $_[0]->{rank} } |
|
42
|
64
|
100
|
|
64
|
1
|
441
|
sub score { @_ > 1 ? ($_[0]->{score} = $_[1]) : $_[0]->{score} } |
|
43
|
0
|
|
|
0
|
1
|
0
|
sub published_at { $_[0]->{published_at} } |
|
44
|
0
|
|
|
0
|
1
|
0
|
sub language { $_[0]->{language} } |
|
45
|
0
|
|
|
0
|
1
|
0
|
sub nsfw { $_[0]->{nsfw} } |
|
46
|
0
|
|
|
0
|
1
|
0
|
sub domain { $_[0]->{domain} } |
|
47
|
52
|
100
|
|
52
|
1
|
3004
|
sub fetched { @_ > 1 ? ($_[0]->{fetched} = $_[1]) : $_[0]->{fetched} } |
|
48
|
0
|
|
|
0
|
1
|
0
|
sub raw { $_[0]->{raw} } |
|
49
|
67
|
|
|
67
|
1
|
131
|
sub extra { $_[0]->{extra} } |
|
50
|
|
|
|
|
|
|
|
|
51
|
|
|
|
|
|
|
sub to_hash { |
|
52
|
0
|
|
|
0
|
1
|
|
my ( $self ) = @_; |
|
53
|
|
|
|
|
|
|
return { |
|
54
|
|
|
|
|
|
|
url => $self->{url}, |
|
55
|
|
|
|
|
|
|
title => $self->{title}, |
|
56
|
|
|
|
|
|
|
snippet => $self->{snippet}, |
|
57
|
|
|
|
|
|
|
provider => $self->{provider}, |
|
58
|
|
|
|
|
|
|
rank => $self->{rank}, |
|
59
|
|
|
|
|
|
|
score => $self->{score}, |
|
60
|
|
|
|
|
|
|
( defined $self->{published_at} ? ( published_at => $self->{published_at} ) : () ), |
|
61
|
|
|
|
|
|
|
( defined $self->{language} ? ( language => $self->{language} ) : () ), |
|
62
|
|
|
|
|
|
|
( defined $self->{nsfw} ? ( nsfw => $self->{nsfw} ? 1 : 0 ) : () ), |
|
63
|
|
|
|
|
|
|
( defined $self->{domain} ? ( domain => $self->{domain} ) : () ), |
|
64
|
|
|
|
|
|
|
( defined $self->{fetched} ? ( fetched => $self->{fetched} ) : () ), |
|
65
|
0
|
0
|
|
|
|
|
( %{ $self->{extra} || {} } ? ( extra => $self->{extra} ) : () ), |
|
|
0
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
66
|
|
|
|
|
|
|
}; |
|
67
|
|
|
|
|
|
|
} |
|
68
|
|
|
|
|
|
|
|
|
69
|
|
|
|
|
|
|
1; |
|
70
|
|
|
|
|
|
|
|
|
71
|
|
|
|
|
|
|
__END__ |