summaryrefslogtreecommitdiff
path: root/search.pl
blob: 8087d3e6b9720ca59d095ebf54c2e3e51cf27d5d (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
47
48
49
50
51
52
53
54
55
56
57
58
59
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;