diff options
Diffstat (limited to 'local/nzbindex.pm')
-rwxr-xr-x | local/nzbindex.pm | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/local/nzbindex.pm b/local/nzbindex.pm index 492ebb3..70256fa 100755 --- a/local/nzbindex.pm +++ b/local/nzbindex.pm @@ -5,7 +5,8 @@ use base "Exporter"; use URI::Escape; use XML::Parser; use XML::SimpleObject; -use LWP::Simple; +use LWP::UserAgent; +use HTTP::Cookies; sub new { @@ -16,6 +17,25 @@ sub new return $self; } +sub http_fetch +{ + my $self=shift; + my ($request)=@_; + my $ua = LWP::UserAgent->new; + $ua->timeout(10); + my $cookie_jar = HTTP::Cookies->new({}); + $ua->cookie_jar($cookie_jar); + my $response = $ua->get("http://www.nzbindex.nl/?lang=2"); + $response = $ua->get('http://www.nzbindex.nl/rss/?'.$request); + if ($response->is_success) { + return $response->decoded_content; + } + else { + return; + die $response->status_line; + } +} + sub search { my $self=shift; @@ -23,10 +43,10 @@ sub search my @result; my $request=''; for my $key (keys %params) { - $request.= uri_escape($key)."=".$params{$key}.'&'; + $request.= uri_escape_utf8($key)."=".$params{$key}.'&'; } $request =~ s/\&$//; - my $feed = get('http://nzbindex.com/rss/?'.$request); + my $feed = $self->http_fetch($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)); |