X-Git-Url: https://git.deb.at/?p=deb%2Fpackages.git;a=blobdiff_plain;f=lib%2FPackages%2FHTML.pm;h=826461a0e944cb035a3a074c44802fd6373116a0;hp=873a7ea0ab3f00240cd97d0a81d5428c5a512c6c;hb=5ca21f1ba07a6b559395bec8d6bc1e528eb238d1;hpb=f49363dc272472174dd57c663c2688c33af927cd diff --git a/lib/Packages/HTML.pm b/lib/Packages/HTML.pm index 873a7ea..826461a 100644 --- a/lib/Packages/HTML.pm +++ b/lib/Packages/HTML.pm @@ -6,6 +6,10 @@ use warnings; use URI::Escape; use HTML::Entities; +use Packages::CGI; +use Packages::Search qw( read_entry_simple ); +use Packages::Config qw( :all ); + #use Packages::Util; #use Packages::I18N::Locale; #use Packages::I18N::Languages; @@ -20,12 +24,8 @@ our @ISA = qw( Exporter ); our @EXPORT = qw( header title trailer file_changed time_stamp read_md5_hash write_md5_hash simple_menu ds_begin ds_item ds_end note title marker pdesc - pdeplegend pkg_list pmoreinfo ); + pdeplegend pkg_list pmoreinfo print_deps ); -our ( $HOME, $ROOT, $CONTACT_MAIL, $WEBMASTER_MAIL, - $SEARCH_PAGE, $SEARCH_CGI, $SEARCH_URL, - $SRC_SEARCH_URL, $CONTENTS_SEARCH_CGI, - $CN_HELP_URL, $BUG_URL, $SRC_BUG_URL, $QA_URL ); our $CHANGELOG_URL = '/changelogs'; sub img { @@ -55,19 +55,6 @@ sub marker { return "[$_[0]]"; } -sub note { - my ( $title, $note ) = @_; - my $str = ""; - - if ($note) { - $str .= "

$title

"; - } else { - $note = $title; - } - $str .= "

$note

"; - return $str; -} - sub pdesc { my ( $short_desc, $long_desc ) = @_; my $str = ""; @@ -92,45 +79,46 @@ sub pdeplegend { return $str; } -sub pkg_list { - my ( $pkgs, $lang, $env ) = @_; - - my $str = ""; - foreach my $p ( @$pkgs ) { - my $p_pkg = $env->{db}->get_pkg( $p ); - - if ( $p_pkg ) { - if ($p_pkg->is_virtual) { - $str .= "
$p
\n". - "\t
".gettext("Virtual package")."
\n"; - } else { - my %subsections = $p_pkg->get_arch_fields( 'section', - $env->{archs} ); - my $subsection = $subsections{max_unique}; - my %desc_md5s = $p_pkg->get_arch_fields( 'description-md5', - $env->{archs} ); - my $short_desc = conv_desc( $lang, - encode_entities( $env->{db}->get_short_desc( $desc_md5s{max_unique}, $lang ), "<>&\"" ) ); - $str .= "
$p
\n". - "\t
$short_desc
\n"; - } - } else { - $str .= "
$p
\n\t
".gettext("Not available")."
\n"; - } - } - if ($str) { - $str = "
$str
\n"; - } - - return $str; -} +# sub pkg_list { +# my ( $pkgs, $lang, $env ) = @_; + +# my $str = ""; +# foreach my $p ( @$pkgs ) { +# my $p_pkg = $env->{db}->get_pkg( $p ); + +# if ( $p_pkg ) { +# if ($p_pkg->is_virtual) { +# $str .= "
$p
\n". +# "\t
".gettext("Virtual package")."
\n"; +# } else { +# my %subsections = $p_pkg->get_arch_fields( 'section', +# $env->{archs} ); +# my $subsection = $subsections{max_unique}; +# my %desc_md5s = $p_pkg->get_arch_fields( 'description-md5', +# $env->{archs} ); +# my $short_desc = conv_desc( $lang, +# encode_entities( $env->{db}->get_short_desc( $desc_md5s{max_unique}, $lang ), "<>&\"" ) ); +# $str .= "
$p
\n". +# "\t
$short_desc
\n"; +# } +# } else { +# $str .= "
$p
\n\t
".gettext("Not available")."
\n"; +# } +# } +# if ($str) { +# $str = "
$str
\n"; +# } + +# return $str; +# } sub pmoreinfo { my %info = @_; my $name = $info{name} or return; my $env = $info{env} or return; - my $d = $info{data} or return; + my $opts = $info{opts} or return; + my $page = $info{data} or return; my $is_source = $info{is_source}; my $str = "
"; @@ -144,25 +132,32 @@ sub pmoreinfo { $bug_url.$name, $name ); } + my $source = $page->get_src( 'name' ); + my $source_version = $page->get_src( 'version' ); + my $src_dir = $page->get_src('directory'); if ($info{sourcedownload}) { + my $files = $page->get_src( 'files' ); + my $path = (@{$opts->{archive}} >1) ? + $opts->{suite} : + "$opts->{suite}/$opts->{archive}[0]"; $str .= gettext( "Source Package:" ); - $str .= " {src_name}\">$d->{src_name}, ". + $str .= " $source, ". gettext( "Download" ).":\n"; - unless ($d->{src_files}) { + unless (@$files) { $str .= gettext( "Not found" ); } else { - foreach( @{$d->{src_files}} ) { + foreach( @$files ) { my ($src_file_md5, $src_file_size, $src_file_name) = @$_; - if ($d->{is_security}) { - $str .= "{opts}{security_site}/$d->{src_directory}/$src_file_name\">["; - } elsif ($d->{is_volatile}) { - $str .= "{opts}{volatile_site}/$d->{src_directory}/$src_file_name\">["; - } elsif ($d->{is_nonus}) { - $str .= "{opts}{nonus_site}/$d->{src_directory}/$src_file_name\">["; - } else { - $str .= "{opts}{debian_site}/$d->{src_directory}/$src_file_name\">["; - } + for ($page->get_newest('archive')) { + /security/o && do { + $str .= "{security}/$src_dir/$src_file_name\">["; last }; + /volatile/o && do { + $str .= "{volatile}/$src_dir/$src_file_name\">["; last }; + /non-us/io && do { + $str .= "{nonus_site}/$src_dir/$src_file_name\">["; last }; + $str .= "{us}/$src_dir/$src_file_name\">["; + } if ($src_file_name =~ /dsc$/) { $str .= "dsc"; } else { @@ -176,10 +171,9 @@ sub pmoreinfo { } if ($info{changesandcopy}) { - if ( $d->{src_directory} ) { - my $src_dir = $d->{src_directory}; - (my $src_basename = $d->{src_version}) =~ s,^\d+:,,; # strip epoche - $src_basename = "$d->{src_name}_$src_basename"; + if ( $src_dir ) { + (my $src_basename = $source_version) =~ s,^\d+:,,; # strip epoche + $src_basename = "${source}_$src_basename"; $src_dir =~ s,pool/updates,pool,o; $src_dir =~ s,pool/non-US,pool,o; $str .= "
".sprintf( gettext( "View the
Debian changelog" ), @@ -190,10 +184,10 @@ sub pmoreinfo { $str .= sprintf( gettext( "View the copyright file" ), $copyright_url )."

"; } - } + } if ($info{maintainers}) { - my @uploaders = @{$d->{uploaders}}; + my @uploaders = @{$page->get_src( 'uploaders' )}; foreach (@uploaders) { $_->[0] = encode_entities( $_->[0], '&<>' ); } @@ -215,7 +209,7 @@ sub pmoreinfo { $str .= "

\n$up_str "; } - $str .= sprintf( gettext( "See the developer information for %s." )."

", $QA_URL.$d->{src_name}, $name ); + $str .= sprintf( gettext( "See the developer information for %s." )."

", $QA_URL.$source, $name ); } if ($info{search}) { @@ -228,6 +222,155 @@ sub pmoreinfo { return $str; } +sub dep_item { + my ( $link, $name, $info, $desc ) = @_; + my $post_link = ''; + if ($link) { + $link = ""; + $post_link = ''; + } else { + $link = ''; + } + if ($info) { + $info = " $info"; + } else { + $info = ''; + } + if ($desc) { + $desc = "
$desc
"; + } else { + $desc = ''; + } + + return "$link$name$post_link$info$desc"; +} # end dep_item + +sub print_deps { + my ( $packages, $opts, $pkg, $relations, $type) = @_; + my %dep_type = ('depends' => 'dep', 'recommends' => 'rec', + 'suggests' => 'sug'); + my $res = "\n"; + } else { + $res = ""; + } + return $res; +} # end print_deps + +# sub print_src_deps { +# my ( $env, $lang, $pkg, $version, $type) = @_; +# my %dep_type = ('build-depends' => 'adep', 'build-depends-indep' => 'idep' ); +# my $found = 0; +# my $res = ""; +# } else { +# $res = ""; +# } +# return $res; +# } # end print_src_deps + + my $ds_begin = '
'; my $ds_item_desc = '
'; my $ds_item = ':
';