root/lang/perl/Net-Pathtraq/trunk/lib/Net/Pathtraq.pm @ 16133

Revision 16133, 1.8 kB (checked in by hidek, 5 years ago)

switch JSON::Any to JSON

Line 
1package Net::Pathtraq;
2
3use strict;
4use warnings;
5
6our $VERSION = '0.01';
7our $DEBUG = 1;
8
9use LWP::UserAgent;
10use URI;
11use JSON;
12use Carp;
13
14sub new {
15    my $class = shift;
16    my %args  = @_;
17
18    $args{apiurl}   ||= 'http://api.pathtraq.com';
19
20    $args{ua} ||= LWP::UserAgent->new();
21    $args{ua}->env_proxy();
22   
23    return bless {%args}, $class;
24}
25
26sub news {
27    my ( $self, $args ) = @_;
28
29    return $self->_get( '/news_ja', $args );
30}
31
32sub popular {
33    my ( $self, $args ) = @_;
34
35    return $self->_get( '/popular', $args );
36}
37
38sub pages {
39    my ( $self, $args ) = @_;
40
41    croak "url is required" unless $args->{url};
42    return $self->_get( '/pages', $args );
43}
44
45sub normalize {
46    my ( $self, $args ) = @_;
47
48    croak "url is required" unless $args->{url};
49    return $self->_get( '/normalize_url2', $args );
50}
51
52sub page_counter {
53    my ( $self,$args) = @_;
54
55    croak "url is required" unless $args->{url};
56    return $self->_get( '/page_counter', $args );
57}
58
59sub page_chart {
60    my ( $self, $args) = @_;
61
62    croak "url is required" unless $args->{url};
63    return $self->_get( '/page_chart', $args );
64}
65
66sub _get {
67    my ( $self, $api, $args ) = @_;
68
69    $args = {} unless $args;
70    $args->{api} = 'json';
71    my $uri = URI->new($self->{apiurl} . $api);
72    $uri->query_form($args);
73    my $res = $self->{ua}->get( $uri);
74    if ($Net::Pathtraq::DEBUG && !$res->is_success) {
75        die $res->status_line;
76    }
77    return $res->is_success ? from_json( $res->content ) : undef;
78}
79
801;
81__END__
82
83=head1 NAME
84
85Net::Pathtraq -
86
87=head1 SYNOPSIS
88
89  use Net::Pathtraq;
90
91=head1 DESCRIPTION
92
93Net::Pathtraq is
94
95=head1 AUTHOR
96
97Hideo Kimura E<lt>hideo.kimura@kddi-web.comE<gt>
98
99=head1 SEE ALSO
100
101=head1 LICENSE
102
103This library is free software; you can redistribute it and/or modify
104it under the same terms as Perl itself.
105
106=cut
Note: See TracBrowser for help on using the browser.