chiark / gitweb /
fix up and improve news graphs sorting
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 29 Jun 2010 10:43:08 +0000 (11:43 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 29 Jun 2010 10:43:08 +0000 (11:43 +0100)
cgi

diff --git a/cgi b/cgi
index d85e4b7314288ca5ce56358da603cc01235b47d0..a4863104630156ef5a3a8a96398742d8da2ce0c9 100755 (executable)
--- a/cgi
+++ b/cgi
@@ -160,12 +160,9 @@ if (!open NM, '<', "$SELF/data/news/name-map") {
     }
 }
 
-sub news_name_sortkey {
-    return join '.', reverse split /\./, $_[0];
-}
+our @news_graphs;
 
-foreach my $src (sort { news_name_sortkey($a) cmp news_name_sortkey($b) }
-                <$SELF/data/news/*.rrd>) {
+foreach my $src (<$SELF/data/news/*.rrd>) {
     my $site= $src;
     $site =~ s,\.rrd$,, or next;
     $site =~ s,.*/,,;
@@ -176,6 +173,15 @@ foreach my $src (sort { news_name_sortkey($a) cmp news_name_sortkey($b) }
     my $newsite= $news_name_map{$site,$inout};
     $site= $newsite if defined $newsite;
     next if $site eq '-';
+    #my $sk= join '.', reverse split /\./, $site;
+    my $sk= $site;
+    $sk .= " $&" if $sk =~ s/^[^.]*(?:news|nntp|peer)[^.]*\.//;
+    $sk .= " $inout";
+    push @news_graphs, [ $sk, $site, $inout, $src ];
+}
+
+foreach my $siteinfo (sort { $a->[0] cmp $b->[0] } @news_graphs) {
+    my ($sortkey, $site, $inout, $src)= @$siteinfo;
     graph_of_group("News", $site, $inout,
          {
                Units => '[art/s]',