blob: 492ebb3af5cbac073e3585fda998b672cffa961f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
package local::nzbindex;
require Exporter;
use strict;
use base "Exporter";
use URI::Escape;
use XML::Parser;
use XML::SimpleObject;
use LWP::Simple;
sub new
{
my $invocant = shift;
my $class = ref($invocant) || $invocant;
# my $self = $class->SUPER::new(@_);
my $self=bless {@_}, $class;
return $self;
}
sub search
{
my $self=shift;
my %params=@_;
my @result;
my $request='';
for my $key (keys %params) {
$request.= uri_escape($key)."=".$params{$key}.'&';
}
$request =~ s/\&$//;
my $feed = get('http://nzbindex.com/rss/?'.$request);
die "Couldn't get connect to search site" unless defined $feed;
my $p1 = new XML::Parser(Style => 'Tree');
my $xso = XML::SimpleObject->new($p1->parse($feed));
if ($xso->child('rss')->child('channel'))
{
print CGI::start_table();
foreach my $item ($xso->child('rss')->child('channel')->children('item')) {
next if not $item;
my $title = $item->child('title')->value;
my $description = $item->child('description')->value;
my $nzburl = $item->child('enclosure')->attribute("url");
push @result,{url=>$nzburl,title=>$title,description=>$description};
}
}
return @result;
}
|