summaryrefslogtreecommitdiff
path: root/local/nzbindex.pm
diff options
context:
space:
mode:
Diffstat (limited to 'local/nzbindex.pm')
-rwxr-xr-xlocal/nzbindex.pm26
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));