Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

JournalH.pl

by JSchmitz (Canon)
on May 15, 2001 at 21:54 UTC ( [id://80648]=sourcecode: print w/replies, xml ) Need Help??
Category: Utility Scripts
Author/Contact Info JGSchmitz@Linuxmail.org
Description: Journal maker for the lazy - more time to drink Whoop-ass and listen to Slayer.
#!/usr/bin/perl

# Listen to Death Metal....it rips!

my ($next,$date,@when,$month,$day,$year,$mod_date,$file,$last_file,$la
+stfile,@lines,$last_date);
my ($full_month,%suff,$title_date);

# generic "next" or "not done yet" link 
$next = 'index.html';

# get today's date and feed it into an array
$date = `date +%D`;  
@when = split(/\//,$date); 

# define m/d/y variables for today's date
$month = $when[0];
$day = $when[1];
$year = $when[2];

# define the name of the write file
$mod_date = join('',$month,$day,$year);
chomp ($mod_date);
$file = join('',$mod_date,'.html');         

# file containing filename of last entry
$last_file = 'last.cfg';  

# open last entry and change the "next" link to today's entry
# if no last entry exists, print a link to index.html
if (-e $last_file) {
  $lastfile = &last();
  chomp($lastfile);
  open(PREV, "+<$lastfile") || die "no can open - $lastfile $!\n";  
    @lines = <PREV>;   
    foreach (@lines) {
      s/$next/$file/;
      }
    seek(PREV,0,0);    
    print PREV @lines;  
  close(PREV) || die "no can close read file - $lastfile: $!\n";
}

else {
  open(LAST, ">$last_file") || die "no can make - $last_file $!\n";
    print LAST "index.html";   
  close(LAST) || die "no can close write - $last_file: $!\n";
}

open(FILE, ">$file") || die "no can make - $file $!\n";

# print out the header
print FILE <<WEBPAGE;
<html>
<head>
  <meta name="robots" content="noarchive">
  <title>$month.$day.$year</title>
</head>
<body bgcolor="#336699">
<center>
<table width="490" bgcolor="#FFFFFF" cellspacing="0" cellpadding="0" b
+order="0">
  <tr>
    <td valign="top">
        <a href="$lastfile"><img src="img/staple.gif" width="30"
        height="38" alt="[back]" border="0"></a><br>
      <img src="img/clear.gif" width="60" height="1" alt=""></td>
    <td valign="top">
      <img src="img/clear.gif" width="380" height="1" alt=""></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><font size="-1" face="arial,verdana">
WEBPAGE
;

# print out the title (month and day)
print FILE "      <b>",&full_month," ",&suffixed,"</b><p>\n\n";

# slurp in content and place it in the body
while (<>) { 
  print FILE $_;
  };

# print footer with "next" link
print FILE <<MOREWEBPAGE;
      </font>
      <p>
      &nbsp;</td>
    <td valign="bottom" align="right">
      <a href="$next"><img src="img/curl.gif" width="50" height="40" a
+lt="[next]" 
      border="0"></a></td>
  </tr>
</table>
</body>
</html>
MOREWEBPAGE
;

# change file in $last_file to today's entry
open(LAST, ">$last_file") || die "no can make - $last_file $!\n";
  print LAST "$file";
close(LAST) || die "no can close write - $last_file: $!\n";


################
# Morbid Angel #
################

# get the filename of the previous entry
sub last {
  open(LAST, "$last_file") || die "no can open - $last_file $!\n";  
    while (<LAST>){
      $last_date = $_;
      };
  close(LAST) || die "no can close read file - $last_file: $!\n";
  return $last_date;
}

# get the full name of the current month
sub full_month {
  $full_month = `date +%B`;  
  chomp ($full_month);
  return $full_month;
}

# get the correct suffix for today's numeric value (i.e. the "rd" in 3
+rd)
sub suffixed {
        %suff = qw(
         1      st
         2      nd
         3      rd
         4      th
         5      th
         6      th
         7      th
         8      th
         9      th
        10      th
        11      th
        12      th
        13      th
        14      th
        15      th
        16      th
        17      th
        18      th
        19      th
        20      th
        21      st
        22      nd
        23      rd
        24      th
        25      th
        26      th
        27      th
        28      th
        29      th
        30      th
        31      st);

  if ($day < 10) {$day =~ s/0//;}
  $title_date = join("",$day,$suff{$day});
  return $title_date;
}

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: sourcecode [id://80648]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (5)
As of 2024-03-28 19:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found