Commit | Line | Data |
---|---|---|
de48830a MG |
1 | package WWW::Offliberty; |
2 | ||
3 | use 5.014; | |
4 | use strict; | |
5 | use warnings; | |
6 | use parent qw/Exporter/; | |
e2c068e8 | 7 | our $VERSION = '0.002'; |
de48830a MG |
8 | our @EXPORT_OK = qw/off/; |
9 | ||
e90bc616 MG |
10 | use constant OFF_URL => 'http://offliberty.com/off54.php'; |
11 | ||
de48830a | 12 | use HTML::TreeBuilder; |
e90bc616 | 13 | use HTTP::Tiny; |
de48830a | 14 | |
e90bc616 | 15 | my $http = HTTP::Tiny->new(agent => "WWW-Offliberty/$VERSION "); |
de48830a MG |
16 | |
17 | sub off{ | |
000e3496 | 18 | my ($url, @params) = @_; |
e90bc616 MG |
19 | my $ret = $http->post_form(OFF_URL, {track => $url, @params}); |
20 | die $ret->{reason} unless $ret->{success}; | |
21 | my $root = HTML::TreeBuilder->new_from_content($ret->{content}); | |
000e3496 | 22 | map { $_->attr('href') } $root->look_down(qw/_tag a class download/); |
de48830a MG |
23 | } |
24 | ||
25 | 1; | |
26 | __END__ | |
27 | ||
28 | =head1 NAME | |
29 | ||
30 | WWW::Offliberty - interface to offliberty.com download service | |
31 | ||
32 | =head1 SYNOPSIS | |
33 | ||
34 | use WWW::Offliberty qw/off/; | |
35 | my @links = off 'http://youtube.com/watch?v=something', video_file => 1; | |
36 | ||
37 | =head1 DESCRIPTION | |
38 | ||
39 | WWW::Offliberty is a simple interface to the offliberty.com download service. | |
40 | ||
41 | It exports a single function: B<off>(I<url>, [I<argument> => value...]). | |
42 | This function that returns a list of download links, | |
43 | as returned by the service. | |
44 | ||
45 | =head1 SEE ALSO | |
46 | ||
47 | L<http://offliberty.com> | |
48 | ||
49 | =head1 AUTHOR | |
50 | ||
51 | Marius Gavrilescu, E<lt>marius@ieval.roE<gt> | |
52 | ||
53 | =head1 COPYRIGHT AND LICENSE | |
54 | ||
55 | Copyright (C) 2013 by Marius Gavrilescu | |
56 | ||
57 | This library is free software; you can redistribute it and/or modify | |
58 | it under the same terms as Perl itself, either Perl version 5.18.1 or, | |
59 | at your option, any later version of Perl 5 you may have available. | |
60 | ||
61 | ||
62 | =cut |