############################################################

sub make_weekly_drivel
{
    my $dow = date_manip("-fDOW $YYYYMMDD");
    log_info("make_weekly_drivel() dow=$dow");

    if ($dow ne $MONDAY)
    {
      log_info("make_weekly_drivel() It's not Monday");
      return;
    }

    makedir("${SHAREDROOT}/weekly");
    my $weekly_file = "${SHAREDROOT}/weekly/weekly_${YYYYMMDD}.txt";

    my $poodate = date_manip("-c 20000727 $YYYYMMDD"); #Num days since 27 July 2000
    log_info("make_weekly_drivel() YYYYMMDD=$YYYYMMDD poodate=$poodate");

    my $today = date_manip("-fDAYOFWEEK_DD_MONTH_YEAR");
    my $monthDD = date_manip("-fMONTH_DD");
    $monthDD =~ s/\s//g;

    # test if today's weekly drivel file exists yet
    open (WEEKLY, "$weekly_file");
    my $test = <WEEKLY>;
    close(WEEKLY);
    if ($test)
    {
        log_info("weekly_file already exists: $weekly_file");
        return;
    }
    log_info("Making weekly_file: $weekly_file");

    my $events_file = "${DATAROOT}/../tripe/public/data/general/events.dat";
    my $events_file2 = "${DATAROOT}/../tripe/public/data/events/$monthDD";

    open (WEEKLY, ">$weekly_file");
    print WEEKLY "Weekly Waste - Poodate: $poodate\n\n";
    print WEEKLY "$today\n";
    print WEEKLY "-" x length($today), "\n";

    # Include notification of impending obliteration day
    my $obliteration_yyyymmdd = next_obliteration_yyyymmdd($YYYYMMDD);
    my $days_to_obliteration = date_manip("-c $YYYYMMDD $obliteration_yyyymmdd");
    if (($days_to_obliteration == 3) || ($days_to_obliteration == 7))
    {
        my $obliteration_date = date_manip("-fDAYOFWEEK_DD_MONTH_YEAR $obliteration_yyyymmdd");
        print WEEKLY qq(
$days_to_obliteration days to next Oblong Obliteration Day: $obliteration_date
This is the last week of the current Corner of The Big Oblong.

);
    }


    # Show final tally of oblongs at End Of Quarter (only on obliteration days)
    if (can_obliterate() == 1)
    {
        log_info("make_weekly_drivel - can obliterate");
        log_info("make_weekly_drivel - show final table of oblongs just before obliteration");

        my %players = {};
        my %bag = {};
        my %oblongs = {};
        my @id_list = ();
        my %bonus = {};

        read_players_file(\@id_list, \%players);

        $YYYYMMDD = date_manip("-d-7 $YYYYMMDD"); # nasty hack
        read_oblong_files(\%players, \%oblongs, \%bag, \@id_list);
        $YYYYMMDD = date_manip("-d7 $YYYYMMDD");

        reset_date_time();
        my $timestamp = sprintf ("%02d:%02d:%02d", $Hour, $Min, $Sec);

        # Get generosity and scrooge bonuses from new oblog file
        my $log_fname = "${SHAREDROOT}/oblongs/oblongs_${YYYYMMDD}.log";
        open (LOGF, "$log_fname")
            or log_error ("make_weekly_drivel - cannot open oblong file: $log_fname");
        while(<LOGF>)
        {
            chop;
            next if (/^\s*$/);
            next if (/^#/);
            my ($yyyymmdd, $time, $from, $to, $points, $reason) = split /;/, $_;
        }
        close(LOGF);

        print WEEKLY qq(
It's Oblong Obliteration Day!

Today's the day we obliterate everybody's oblongs and find out
who is this Corner's oblong champion.

Final Oblongs
-------------
);
        my @ids = sort {$oblongs{$b} <=> $oblongs{$a}} @id_list;
        my $count = 0;
        my $winner = "";
        for my $id (@ids)
        {
            my $info = "";
            if ($count == 0)
            {
                $info = "Winner!";
                $winner = $players{$id};
            }
            $info = "Runner up" if ($count == 1);
            $info = "Third place" if ($count == 2);
            printf WEEKLY "%2d %-20s %s\n", $oblongs{$id}, $players{$id}, $info;
            $count++;
        }

        print WEEKLY qq(

So congratulations to $winner who wins a covetted Corner in this
year's Big Oblong.
And well done to everyone else who took part in the oblongathon.

Now it is time to obliterate all these oblongs and start afresh.
Who will be next Corner's champion?
Could it be you?

);
    } # can_obliterate

    # Show current tally of oblongs (only on Mondays)
    my $dow = date_manip("-fDOW $YYYYMMDD");

    if ($dow eq $MONDAY)
    {
        my %players = {};
        my %bag = {};
        my %oblongs = {};
        my @id_list = ();
        my %bonus = {};

        read_players_file(\@id_list, \%players);
        read_oblong_files(\%players, \%oblongs, \%bag, \@id_list);

        # Get generosity and scrooge bonuses from new oblog file
        my $log_fname = "${SHAREDROOT}/oblongs/oblongs_${YYYYMMDD}.log";
        open (LOGF, "$log_fname")
            or log_error ("make_weekly_drivel - cannot open oblong file: $log_fname");
        while(<LOGF>)
        {
            chop;
            next if (/^\s*$/);
            next if (/^#/);
            my ($yyyymmdd, $time, $from, $to, $points, $reason) = split /;/, $_;
            if ($from eq "pooclub")
            {
                $bonus{$to} = qq(Generosity bonus) if (($points > 0) && ($obliteration_yyyymmdd != $YYYYMMDD));
                $bonus{$to} = qq(Scrooge penalty) if (($points < 0) && ($obliteration_yyyymmdd != $YYYYMMDD));
            }
        }
        close(LOGF);

        print WEEKLY qq(
Oblongs
-------
);
        my @ids = sort {$oblongs{$b} <=> $oblongs{$a}} @id_list;
        for my $id (@ids)
        {
            printf WEEKLY "%2d %-20s %s\n", $oblongs{$id}, $players{$id}, $bonus{$id};
        }
        print WEEKLY qq(
Manage your oblongs here: http://pooclub.shite.org/oblongs

);
    }

    close(WEEKLY);

    my $to_email = $UBERENV{GROUP_EMAIL}; # mail to pooclub forum

    my $subject = "The Oblong Observer";
    log_info("Mailing $subject to $to_email from $UBERENV{ADMIN_EMAIL}");

    email_notify_file($to_email,
                      $UBERENV{ADMIN_EMAIL},
                      "$subject",
                      "$weekly_file",
                      "Oblong Observer");

}

############################################################
