summaryrefslogtreecommitdiff
path: root/search.pl
diff options
context:
space:
mode:
Diffstat (limited to 'search.pl')
-rwxr-xr-xsearch.pl60
1 files changed, 60 insertions, 0 deletions
diff --git a/search.pl b/search.pl
new file mode 100755
index 0000000..8087d3e
--- /dev/null
+++ b/search.pl
@@ -0,0 +1,60 @@
+#!/usr/bin/perl
+use strict;
+use CGI qw(:standard);
+use CGI::Carp 'fatalsToBrowser';
+use URI::Escape;
+
+print header;
+print start_html('nzbget status');
+
+use XML::Parser;
+use XML::SimpleObject;
+print CGI::start_table();
+
+print CGI::start_form(-action=>'/cgi-bin/nzbget/search.pl');
+print table(
+ Tr(td(['Search',textfield('q'),])),
+ Tr(td(['min Size',textfield('minsize')])),
+ Tr(td(['max Size',textfield('maxsize').hidden('more',1)])),
+ Tr(td(['results',CGI::popup_menu(
+ -name => 'max',
+ -values => ['25','100','500'],
+ -default => '25',
+ -labels => {25=>'25',100=>'100',500=>500}
+ ) ])),
+ Tr(td([submit()])),
+);
+print CGI::end_form;
+if (param())
+{
+ my $request='';
+ for my $key (param) {
+ $request.= "$key=".param($key).'&';
+ }
+ $request =~ s/\&$//;
+ use LWP::Simple;
+ 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));
+ my $i=0;
+ if ($xso->child('rss')->child('channel'))
+ {
+ print CGI::start_table();
+ foreach my $item ($xso->child('rss')->child('channel')->children('item')) {
+ next if not $item;
+ $i++;
+ my $title = $item->child('title')->value;
+ my $description = $item->child('description')->value;
+ my $nzburl = $item->child('enclosure')->attribute("url");
+ print Tr(td([
+ a({href=>"./enqueue.pl?url=".uri_escape($nzburl)."&name=".uri_escape(param('q'))},$title).' '.
+ a({href=>"./enqueue.pl?url=".uri_escape($nzburl)."&name=".uri_escape(param('q'))."&cat=music"},'Music').
+ $description]));
+ }
+ print CGI::end_table();
+ }
+ print hr().'nothing found' if not $i;
+}
+print end_html;
+