]> git.deb.at Git - deb/packages.git/blobdiff - lib/Packages/DoSearch.pm
Packages::DoNewPkg: Support new backend format
[deb/packages.git] / lib / Packages / DoSearch.pm
index c1b6dfdd01cd8c51420a530e68ff895eb9bab91b..31e110d5449afbd6cc60367475d14725e4d8800c 100644 (file)
@@ -5,8 +5,6 @@ use warnings;
 
 use Benchmark ':hireswallclock';
 use DB_File;
-use URI::Escape;
-use HTML::Entities;
 use Exporter;
 our @ISA = qw( Exporter );
 our @EXPORT = qw( do_search );
@@ -90,7 +88,7 @@ sub do_search {
        unless ($opts->{source}) {
            foreach (@results) {
                my ($pkg_t, $archive, $suite, $arch, $section, $subsection,
-                   $priority, $version, $desc) = @$_;
+                   $priority, $version, $desc_md5, $desc) = @$_;
 
                my ($pkg) = $pkg_t =~ m/^(.+)/; # untaint
                if ($arch ne 'virtual') {
@@ -99,7 +97,7 @@ sub do_search {
                    $sect{$pkg}{$suite}{$version} = $section;
                    $archives{$pkg}{$suite}{$version} ||= $archive;
 
-                   $desc{$pkg}{$suite}{$version} = $desc;
+                   $desc{$pkg}{$suite}{$version} = [ $desc_md5, $desc ];
                } else {
                    $provided_by{$pkg}{$suite} = [ split /\s+/, $desc ];
                }
@@ -199,9 +197,22 @@ sub process_package {
            my @versions = version_sort keys %{$pkgs->{$suite}};
            $suite{section} = $sect->{$suite}{$versions[0]};
            $suite{subsection} = $subsect->{$suite}{$versions[0]};
-           $suite{desc} = $desc->{$suite}{$versions[0]};
+           my $desc_md5 = $desc->{$suite}{$versions[0]}[0];
+           $suite{desc} = $desc->{$suite}{$versions[0]}[1];
            $suite{versions} = [];
-               
+
+           my $trans_desc = $desctrans{$desc_md5};
+           my %sdescs;
+           if ($trans_desc) {
+               my %trans_desc = split /\000|\001/, $trans_desc;
+               while (my ($l, $d) = each %trans_desc) {
+                   $d =~ s/\n.*//os;
+
+                   $sdescs{$l} = $d;
+               }
+               $suite{trans_desc} = \%sdescs;
+           }
+
            foreach my $v (@versions) {
                my %version;
                $version{version} = $v;