X-Git-Url: https://git.deb.at/?p=deb%2Fpackages.git;a=blobdiff_plain;f=lib%2FPackages%2FDoNewPkg.pm;h=60e6876c6274c53a044c933e9b48128e0d842bc9;hp=c3175ec6db6ca2cbfd39a3c6573a91b51cf5e0dc;hb=ee1229bf379cb681a4805bf97ecdea9e60a7efb8;hpb=6b32484cb228479df13814cf1ba0f6667ff7148d diff --git a/lib/Packages/DoNewPkg.pm b/lib/Packages/DoNewPkg.pm index c3175ec..60e6876 100644 --- a/lib/Packages/DoNewPkg.pm +++ b/lib/Packages/DoNewPkg.pm @@ -16,10 +16,10 @@ use Packages::I18N::Locale; use Packages::Search qw( :all ); use Packages::CGI; use Packages::DB; -use Packages::Config qw( $TOPDIR @SECTIONS $HOSTNAME $ROOT ); +use Packages::Config qw( $TOPDIR @SECTIONS $ROOT ); sub do_newpkg { - my ($params, $opts, $html_header, $menu, $page_content) = @_; + my ($params, $opts, $page_content) = @_; if ($params->{errors}{suite}) { fatal_error( _g( "suite not valid or not specified" ) ); @@ -30,7 +30,7 @@ sub do_newpkg { my $sort_func = sub { $_[0][0] cmp $_[1][0] }; $sort_func = sub { $_[0][1] <=> $_[1][1] or $_[0][0] cmp $_[1][0] } - if $opts->{mode} eq 'byage'; + if $opts->{mode} eq 'byage'; my $suite = $opts->{suite}[0]; my $one_archive = @{$opts->{archive}} == 1 ? @@ -38,10 +38,6 @@ sub do_newpkg { my $one_section = @{$opts->{section}} == 1 ? $opts->{section}[0] : undef; - my @full_path = ($HOSTNAME, $ROOT, $suite); - push @full_path, $one_archive if $one_archive; - my $full_path = join( '/', @full_path ); - my @new_pkgs; #FIXME: move to Packages::DB? open NEWPKG, '<', "$TOPDIR/files/packages/newpkg_info" @@ -50,6 +46,7 @@ sub do_newpkg { chomp; my @data = split /\s/, $_, 10; + next unless $data[2]; #removed packages next unless $data[3] eq $suite; next if $one_archive and $data[2] ne $one_archive; next if $one_section and $data[5] ne $one_section; @@ -60,91 +57,18 @@ sub do_newpkg { close NEWPKG; (my @date)= gmtime(); - my $now_time = strftime ("%B %d, %Y", @date); - my $rss_time = strftime ("%Y-%m-%dT%H:%M+00:00", @date); - - unless ($opts->{format} eq 'rss') { - my $title = sprintf( _g( "New Packages in \"%s\"" ), - $suite ); - %$html_header = ( title => $title, - title_keywords => "debian, "._g('new packages').", $suite, @{$opts->{section}}", - meta => "", - lang => $opts->{lang}, - print_title => 1 ); - - $$page_content .= "

" - . sprintf(_g( "The following packages were added to suite %s%s in the Debian archive during the last 7 days."), $suite, - $one_section ? sprintf(_g(" (section %s)"),$one_section):'')."

" - . "

".sprintf( _g( "This information is also available as an RSS feed." ), "newpkg?format=rss" ) - ." \"[RSS

"; - - if (@new_pkgs) { - $$page_content .= "\n\n" if @new_pkgs; - } - - my $slist = ''; - if ($one_section) { - foreach my $s (@SECTIONS) { - $slist .= ", " if $slist; - $slist .= $one_section eq $s ? $s : - "$s"; - } - } + #FIXME: compute in the template + $page_content->{rss_timestamp} = strftime ("%Y-%m-%dT%H:%M+00:00", @date); - $$page_content .= '

". - _g( "All packages" ) ."
(". - _g( "compact compressed textlist" ).")
". - ($slist ? sprintf(_g( "New packages in %s" ), $slist ):''). - "

\n"; - - } else { # unless ($opts->{format} eq 'rss') - my ( $rss_link, $rss_description, $rss_date ); - - $rss_description = sprintf(_g( "The following packages were added to suite %s%s in the Debian archive during the last 7 days."), $suite, - $one_section ? sprintf(_g(" (section %s)"),$one_section):''); + if (@new_pkgs) { + $page_content->{new_packages} = [ sort { &$sort_func($a,$b) } @new_pkgs ]; + } - my $rss = new XML::RSS (version => '1.0'); - $rss_link = "$full_path".($one_section?"$one_section/":'')."/newpkg?format=rss"; - $rss->channel( - title => _g("New Debian Packages"), - link => $rss_link, - description => $rss_description, - dc => { - date => $rss_time, - publisher => 'debian-www@lists.debian.org', - rights => 'Copyright '.($date[5]+1900).', SPI Inc.', - language => $opts->{lang}, - }, - syn => { - updatePeriod => "daily", - updateFrequency => "2", -# updateBase => "1901-01-01T00:00+00:00", - } ); + $page_content->{suite} = $suite; + $page_content->{section} = $one_section if $one_section; + $page_content->{archive} = $one_archive if $one_archive; + $page_content->{sections} = \@SECTIONS; - foreach my $pkg (sort { &$sort_func($a,$b) } @new_pkgs) { - $rss->add_item( - title => $pkg->[0], - link => "$full_path/$pkg->[0]", - description => $pkg->[-1], - dc => { - subject => $pkg->[6], - } ); - } - print &CGI::header( -type => 'application/rss+xml' ); - print $rss->as_string; - exit; - } } 1;