]);
}
-foreach my $src (<$SELF/data/news/*.rrd>) {
+our %news_name_map;
+
+if (!open NM, '<', "$SELF/data/news/name-map") {
+ die unless $!==&ENOENT;
+} else {
+ while (<NM>) {
+ s/^\s*//; s/\s+$//;
+ next unless m/^[^\#]/;
+ m/^(\S+)\s+(in|out|\*)\s+(\S+)$/ or die;
+ if ($2 eq '*') {
+ $news_name_map{$1,$_}= $3 foreach qw(in out);
+ } else {
+ $news_name_map{$1,$2}= $3;
+ }
+ }
+}
+
+sub news_name_sortkey {
+ return join '.', reverse split /\./, $_[0];
+}
+
+foreach my $src (sort { news_name_sortkey($a) cmp news_name_sortkey($b) }
+ <$SELF/data/news/*.rrd>) {
my $site= $src;
$site =~ s,\.rrd$,, or next;
$site =~ s,.*/,,;
my $inout= $1;
$site =~ s/^([-.0-9a-z]+)_//;
my $us= $1; # all very well but we ignore it
+ my $newsite= $news_name_map{$site,$inout};
+ next if $newsite eq '-';
+ $site= $newsite if defined $newsite;
graph_of_group("News", $site, $inout,
{
Slower => 1,