Fix: Consistency check for MID-Format fixed (regexp).
[usenet/yapfaq.git] / yapfaq.pl
index 57ca99b..df69b78 100644 (file)
--- a/yapfaq.pl
+++ b/yapfaq.pl
 
 my $Version = "0.8-prelease";
 
 
 my $Version = "0.8-prelease";
 
+# Please do not change this setting!
+# You may override the default .rc file (.yapfaqrc) by using "-c .rc file"
 my $RCFile = '.yapfaqrc';
 my $RCFile = '.yapfaqrc';
+# Valid configuration variables for use in a .rc file
 my @ValidConfVars = ('NNTPServer','NNTPUser','NNTPPass','Sender','ConfigFile',
                      'UsePGP','pgp','PGPVersion','PGPSigner','PGPPass',
                      'PathtoPGPPass','pgpbegin','pgpend','pgptmpf','pgpheader');
 
 my @ValidConfVars = ('NNTPServer','NNTPUser','NNTPPass','Sender','ConfigFile',
                      'UsePGP','pgp','PGPVersion','PGPSigner','PGPPass',
                      'PathtoPGPPass','pgpbegin','pgpend','pgptmpf','pgpheader');
 
-################################### Defaults ##################################
+################################### Defaults ###################################
+# Please do not change anything in here!
+# Use a runtime configuration file (.yapfaqrc by default) to override defaults.
 my %Config = (NNTPServer => "",
               NNTPUser   => "",
               NNTPPass   => "",
 my %Config = (NNTPServer => "",
               NNTPUser   => "",
               NNTPPass   => "",
@@ -50,7 +55,7 @@ my @PGPorderheaders = ('from', 'newsgroups', 'subject', 'control',
        'content-transfer-encoding', 'summary', 'keywords', 'cancel-lock',
        'cancel-key', 'also-control', 'x-pgp', 'user-agent');
 
        'content-transfer-encoding', 'summary', 'keywords', 'cancel-lock',
        'cancel-key', 'also-control', 'x-pgp', 'user-agent');
 
-############################# End of Configuration #############################
+################################# Main program #################################
 
 use strict;
 use Net::NNTP;
 
 use strict;
 use Net::NNTP;
@@ -210,7 +215,7 @@ sub readconfig{
       warn "$0: W: The Expires for your project \"$$Config[$i]{'name'}\" is invalid - set to 3 month.\n";
       $$Config[$i]{'expires'} = '3m'; # set default (3 month) if expires is unset or invalid
     }
       warn "$0: W: The Expires for your project \"$$Config[$i]{'name'}\" is invalid - set to 3 month.\n";
       $$Config[$i]{'expires'} = '3m'; # set default (3 month) if expires is unset or invalid
     }
-    unless(!$$Config[$i]{'mid-format'} || $$Config[$i]{'mid-format'} =~ /^<\S+\@\S{2,}\.\S{2,}>$/) {
+    unless(!$$Config[$i]{'mid-format'} || $$Config[$i]{'mid-format'} =~ /^<\S+\@(\S+\.)?\S{2,}\.\S{2,}>/) {
       warn "$0: W: The Message-ID format for your project \"$$Config[$i]{'name'}\" seems to be invalid - set to default.\n";
       $$Config[$i]{'mid-format'} = '<%n-%d.%m.%y@'.hostfqdn.'>'; # set default if mid-format is invalid
     }
       warn "$0: W: The Message-ID format for your project \"$$Config[$i]{'name'}\" seems to be invalid - set to default.\n";
       $$Config[$i]{'mid-format'} = '<%n-%d.%m.%y@'.hostfqdn.'>'; # set default if mid-format is invalid
     }
@@ -264,6 +269,7 @@ sub postfaq {
   #Prepare MID:
   $$TDM = ($$TDM < 10 && $$TDM !~ /^0/) ? "0" . $$TDM : $$TDM;
   $$TDD = ($$TDD < 10 && $$TDD !~ /^0/) ? "0" . $$TDD : $$TDD;
   #Prepare MID:
   $$TDM = ($$TDM < 10 && $$TDM !~ /^0/) ? "0" . $$TDM : $$TDM;
   $$TDD = ($$TDD < 10 && $$TDD !~ /^0/) ? "0" . $$TDD : $$TDD;
+  my $Timestamp = time;
 
   $MID = $$MIDF;
   $MID = '<%n-%d.%m.%y@'.hostfqdn.'>' if !defined($MID); # set to default if unset
 
   $MID = $$MIDF;
   $MID = '<%n-%d.%m.%y@'.hostfqdn.'>' if !defined($MID); # set to default if unset
@@ -271,6 +277,7 @@ sub postfaq {
   $MID =~ s/\%d/$$TDD/g;
   $MID =~ s/\%m/$$TDM/g;
   $MID =~ s/\%y/$$TDY/g;
   $MID =~ s/\%d/$$TDD/g;
   $MID =~ s/\%m/$$TDM/g;
   $MID =~ s/\%y/$$TDY/g;
+  $MID =~ s/\%t/$Timestamp/g;
 
   #Now get the body:
   open (FH, "<$$File");
 
   #Now get the body:
   open (FH, "<$$File");
@@ -684,8 +691,9 @@ A pattern from which the message ID is generated as it will appear in
 the Message-ID header of the message.
 
 You may use the special strings C<%n> for the I<Name> of your project,
 the Message-ID header of the message.
 
 You may use the special strings C<%n> for the I<Name> of your project,
-C<%d> for the date the message is posted, C<%m> for the month and
-C<%y> for the year, respectively.
+C<%d> for the date the message is posted, C<%m> for the month, C<%y>
+for the year and C<%t> for a time stamp (number of seconds since the
+epoch), respectively.
 
 This setting is optional; the default is '<%n-%d.%m.%y@I<YOURHOST>>'
 where I<YOURHOST> is the fully qualified domain name (FQDN) of the
 
 This setting is optional; the default is '<%n-%d.%m.%y@I<YOURHOST>>'
 where I<YOURHOST> is the fully qualified domain name (FQDN) of the
This page took 0.010555 seconds and 4 git commands to generate.