diff options
Diffstat (limited to 'search.pl')
-rwxr-xr-x | search.pl | 60 |
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; + |