Diff for /mail2lj/mail2lj.pl between versions 1.7 and 1.8

version 1.7, 2007/08/14 20:59:15 version 1.8, 2007/08/31 17:02:46
Line 30 Line 30
 #     original From: address).  This is convenient when you want to notify   #     original From: address).  This is convenient when you want to notify 
 #     script maintainer instead of the poster (exactly what I need).  #     script maintainer instead of the poster (exactly what I need).
 #  #
   # Changes by Boris Veytsman - added --cut option
   #
   # Changes by LG: added --obfuscate option to protect e-mails in the body.
 #  #
 # NB: to generate MD5 hash of your password, use the following command:  # NB: to generate MD5 hash of your password, use the following command:
 #     perl -MDigest::MD5 -e 'print Digest::MD5::md5_hex("yourpassword")."\n"'  #     perl -MDigest::MD5 -e 'print Digest::MD5::md5_hex("yourpassword")."\n"'
Line 42 Line 45
 # Original script seems to be distributed as freeware, so I stick to that  # Original script seems to be distributed as freeware, so I stick to that
 # decision.  No warranty whatsoever, of course - use at your own risk ;-).  # decision.  No warranty whatsoever, of course - use at your own risk ;-).
 #  #
 # Changes by Boris Veytsman - added --cut option  
 #  
 # ------------------------------------------------------------------------  # ------------------------------------------------------------------------
   
 use     strict ;  use     strict ;
Line 113  my %tr = ( Line 114  my %tr = (
 'À' => 'yu', 'Ñ' => 'ya'  'À' => 'yu', 'Ñ' => 'ya'
 );  );
   
   # What to convert '@' to when obfuscating e-mail addresses (in '--add-from'
   # and/or '--obfuscate' modes.
   my $newdog = '[_@_]';
   
 # ------------------------------------------------------------------------ #  # ------------------------------------------------------------------------ #
 # End configuration settings.  # End configuration settings.
 # ------------------------------------------------------------------------ #  # ------------------------------------------------------------------------ #
Line 132  my  @opt_taglist ;    # command-line tag Line 137  my  @opt_taglist ;    # command-line tag
 my      $opt_ljcut ;                    # Add lj-cut after line number N  my      $opt_ljcut ;                    # Add lj-cut after line number N
 my      $ljcut_delta = 5 ;              # No lj-cut if less lines left after it  my      $ljcut_delta = 5 ;              # No lj-cut if less lines left after it
 my      $opt_ljcut_text ;               # A text for lj-cut.  my      $opt_ljcut_text ;               # A text for lj-cut.
   my      $opt_obfuscate ;                # Obfuscate e-mail addresses in body
 my      $Parse = GetOptions( \%Opt,  my      $Parse = GetOptions( \%Opt,
                         'user|u=s',                          'user|u=s',
                         'password|passwd|p=s',                          'password|passwd|p=s',
Line 155  my  $Parse = GetOptions( \%Opt, Line 161  my  $Parse = GetOptions( \%Opt,
                         'ljcut|lj-cut|cut|l=i'=>\$opt_ljcut,                          'ljcut|lj-cut|cut|l=i'=>\$opt_ljcut,
                         'ljcut-text|lj-cut-text|cut-text|ljcuttext|cuttext=s'=>\$opt_ljcut_text,                          'ljcut-text|lj-cut-text|cut-text|ljcuttext|cuttext=s'=>\$opt_ljcut_text,
                         'keep-spaces|keep-space|keepspaces|keepspace|spaces|space!' => \$opt_keepspaces,                          'keep-spaces|keep-space|keepspaces|keepspace|spaces|space!' => \$opt_keepspaces,
                           'obfuscate|obfu|o!' => \$opt_obfuscate,
                         'help|h' => \$opt_h,                          'help|h' => \$opt_h,
                            );                             );
   
Line 544  sub post_body2href { Line 551  sub post_body2href {
                 } elsif ($var =~ /^no-?tags?$/ || $var eq "no-?taglist") {                  } elsif ($var =~ /^no-?tags?$/ || $var eq "no-?taglist") {
                     $req_data->{prop_taglist} = "" if $val =~ /^\s*((on)|(yes))\s*$/i ;                      $req_data->{prop_taglist} = "" if $val =~ /^\s*((on)|(yes))\s*$/i ;
   
                   # Changed by LG - added 'Obfuscate' option to protect e-mail
                   # addresses in the body of the message.
                   } elsif ($var =~ /^obfuscate$/ ) {
                       $val = 1 if $val =~ /^\s*((on)|(yes))\s*$/i ;
                       $val = 0 if $val =~ /^\s*((off)|(no))\s*$/i ;
                       $opt_obfuscate = $val ;
   
                 # Anything else - just assign.                  # Anything else - just assign.
                 } else {                  } else {
                     $req_data->{$var} = $val ;                      $req_data->{$var} = $val ;
Line 607  sub post_me2req { Line 621  sub post_me2req {
         # Changed by LG.          # Changed by LG.
         my $from = hdr2utf8($me->get('From') || "", $charset) ;          my $from = hdr2utf8($me->get('From') || "", $charset) ;
         chomp $from ;          chomp $from ;
           my $olddog_utf8 = str2utf8("\@", "ISO-8859-1") ;    # @ in utf
           my $newdog_utf8 = str2utf8($newdog, "ISO-8859-1") ; # obfuscated in utf
   
         my      $hr = href2utf8(post_body2href($mebh->open("r")), $charset) ;          my      $hr = href2utf8(post_body2href($mebh->open("r")), $charset) ;
         my      $req = new HTTP::Request('POST', $post_uri) or          my      $req = new HTTP::Request('POST', $post_uri) or
Line 626  sub post_me2req { Line 642  sub post_me2req {
         # Changed by LG - removed prefixing.          # Changed by LG - removed prefixing.
         # $hr->{subject} = "[mail2lj] " . $hr->{subject} ;          # $hr->{subject} = "[mail2lj] " . $hr->{subject} ;
   
   
           # Changed by LG - added option to obfuscate all e-mail addresses in
           # the body of mail messages.
           if ( $opt_obfuscate ) {
              $hr->{event} =~ 
                  s/\b([-+_.\w]+)($olddog_utf8)([-_.\w]+)\b/$1${newdog_utf8}$3/g ;
           }
   
   
         # Changed by LG - added options to add the plain or HTML-ized 'From'          # Changed by LG - added options to add the plain or HTML-ized 'From'
         # field to the posted message.          # field to the posted message.
         #           # 
Line 652  sub post_me2req { Line 677  sub post_me2req {
                             . str2utf8("</i></nobr>\n\n", "ISO-8859-1") ;                              . str2utf8("</i></nobr>\n\n", "ISO-8859-1") ;
            }             }
   
            # Obfuscate the address.             # This address is alway obfuscated (independently of the 
            my $olddog = str2utf8("\@", "ISO-8859-1") ;          # @ in utf8             # '--obfuscate' option which only governs addresses _already_
            my $newdog = str2utf8("[_\@_]", "ISO-8859-1") ;      # [_@_] in utf8             # in the body.
            $added_from =~ s/$olddog/$newdog/g ;                 # Obfuscate             $added_from =~ s/$olddog_utf8/$newdog_utf8/g ;       # Obfuscate
            $hr->{event} = $added_from . $hr->{event} ;          # And append             $hr->{event} = $added_from . $hr->{event} ;          # And append
         }           } 
   
Line 1005  Options: Line 1030  Options:
                any HTML-formatting - see '--fromh' for that).  For slight                  any HTML-formatting - see '--fromh' for that).  For slight 
                antispam protection, '\@' is replaced by '[_\@_]'.  The option                  antispam protection, '\@' is replaced by '[_\@_]'.  The option 
                can be negated ('--nofrom').  Default is '--nofrom'.                 can be negated ('--nofrom').  Default is '--nofrom'.
                  Note: this option is independent from '--obfuscate' (i.e. the
                  prepended From is always obfuscated, even if the rest of the 
                  message is not).
   
 --fromh, --addfromh  --fromh, --addfromh
                Same as '--from', but uses HTML-markup to highlight inserted                  Same as '--from', but uses HTML-markup to highlight inserted 
Line 1012  Options: Line 1040  Options:
                nice for mailing list -> Livejournal crossposting.  The option                 nice for mailing list -> Livejournal crossposting.  The option
                can be negated ('--nofromh').  Default is '--nofromh'.                 can be negated ('--nofromh').  Default is '--nofromh'.
   
   -o, --obfuscate
                  Obfuscate all e-mail addresses that are present in the body
                  of the message.  For slight antispam protection, '\@' in these
                  addresses is replaced by '[_\@_]'.  The option can be negated
                  ('--noobfuscate').  Default is '--noobfuscate'.
   
 --spaces, --keepspaces  --spaces, --keepspaces
                Normally the script does not change original message text,                 Normally the script does not change original message text,
                and all of it is preserved in the body of resulting LJ post.                 and all of it is preserved in the body of resulting LJ post.

Removed from v.1.7  
changed lines
  Added in v.1.8


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>