version 1.1, 2007/08/12 19:54:44
|
version 1.4, 2007/08/14 04:19:50
|
Line 42
|
Line 42
|
# 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 115 my %tr = (
|
Line 117 my %tr = (
|
|
|
# ------------------------------------------------------------------------ # |
# ------------------------------------------------------------------------ # |
# Changed by LG - added parsing of command line. |
# Changed by LG - added parsing of command line. |
|
# Changed by BV - added options cut |
# ------------------------------------------------------------------------ # |
# ------------------------------------------------------------------------ # |
my %Opt = (); # Main options go here |
my %Opt = (); # Main options go here |
my $opt_h ; # Help flag |
my $opt_h ; # Help flag |
Line 123 my $opt_addfrom ; # Add the From fie
|
Line 126 my $opt_addfrom ; # Add the From fie
|
my $opt_addfromh ; # Add the htmlized From to the post |
my $opt_addfromh ; # Add the htmlized From to the post |
my $opt_keepspaces ; # HTML-encode multiple spaces in e-mail |
my $opt_keepspaces ; # HTML-encode multiple spaces in e-mail |
my @opt_taglist ; # command-line taglist first goes here |
my @opt_taglist ; # command-line taglist first goes here |
|
my $opt_ljcut ; # Add lj-cut after line number N |
|
my $ljcut_delta = 5 ; # No lj-cut if less lines left after it |
|
my $opt_ljcut_text ; # A text for lj-cut. |
my $Parse = GetOptions( \%Opt, |
my $Parse = GetOptions( \%Opt, |
'user|u=s', |
'user|u=s', |
'password|passwd|p=s', |
'password|passwd|p=s', |
Line 133 my $Parse = GetOptions( \%Opt,
|
Line 139 my $Parse = GetOptions( \%Opt,
|
'prop_opt_backdated|backdated|back-dated|backdate|back-date|back!', |
'prop_opt_backdated|backdated|back-dated|backdate|back-date|back!', |
'subject|subj|s=s', |
'subject|subj|s=s', |
'taglist|tags|tag|t=s' => \@opt_taglist, # Will tweak |
'taglist|tags|tag|t=s' => \@opt_taglist, # Will tweak |
|
'notaglist|notags|notag|not|no-taglist|no-tags|no-tag|no-t' => sub {undef @opt_taglist}, |
'usejournal|use-journal|use|journal|j=s', |
'usejournal|use-journal|use|journal|j=s', |
'prop_current_mood|current_mood|mood=s', |
'prop_current_mood|current_mood|mood=s', |
'prop_current_music|current_music|music=s', |
'prop_current_music|current_music|music=s', |
Line 142 my $Parse = GetOptions( \%Opt,
|
Line 149 my $Parse = GetOptions( \%Opt,
|
'bounces|bounce|b=s' => \$opt_bounces, |
'bounces|bounce|b=s' => \$opt_bounces, |
'addfrom|add-from|from!' => \$opt_addfrom, |
'addfrom|add-from|from!' => \$opt_addfrom, |
'addfromh|add-fromh|fromh!' => \$opt_addfromh, |
'addfromh|add-fromh|fromh!' => \$opt_addfromh, |
|
'ljcut|lj-cut|cut|l=i'=>\$opt_ljcut, |
|
'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, |
'help|h' => \$opt_h, |
'help|h' => \$opt_h, |
); |
); |
Line 215 my $mp = new MIME::Parser() or die "new
|
Line 224 my $mp = new MIME::Parser() or die "new
|
|
|
# Changed by LG - changed directory. |
# Changed by LG - changed directory. |
# $mp->output_dir("$home/mimetmp") ; |
# $mp->output_dir("$home/mimetmp") ; |
$mp->output_dir("/tmp/mimetmp-$ENV{user}") ; |
$mp->output_dir("/tmp/mimetmp-".$ENV{USER}) ; |
mkdir $mp->output_dir if not -d $mp->output_dir ; # Create it if missing |
mkdir $mp->output_dir if not -d $mp->output_dir ; # Create it if missing |
|
|
# Get the whole mail. |
# Get the whole mail. |
Line 514 sub post_body2href {
|
Line 523 sub post_body2href {
|
|
|
# Changed by LG - added 'tags' option. |
# Changed by LG - added 'tags' option. |
} elsif ($var =~ /^tags?$/ || $var eq "taglist") { |
} elsif ($var =~ /^tags?$/ || $var eq "taglist") { |
$req_data->{prop_taglist} = $val; |
$req_data->{prop_taglist} = $val; |
|
|
|
# Changed by LG - added 'notags' option. Empty the preceding |
|
# taglist if set to true, otherwise do nothing |
|
} elsif ($var =~ /^no-?tags?$/ || $var eq "no-?taglist") { |
|
$req_data->{prop_taglist} = "" if $val =~ /^\s*((on)|(yes))\s*$/i ; |
|
|
# Anything else - just assign. |
# Anything else - just assign. |
} else { |
} else { |
Line 607 sub post_me2req {
|
Line 621 sub post_me2req {
|
$hr->{event} =~ s/\t/\ \ \ \ \ \ \ \ /g ; |
$hr->{event} =~ s/\t/\ \ \ \ \ \ \ \ /g ; |
$hr->{event} =~ s/ / \ /g ; |
$hr->{event} =~ s/ / \ /g ; |
} |
} |
|
|
|
# |
|
# Change by BV - added the option to put lj-cut after '--cut XX' lines |
|
# |
|
# Tweaked by LG - only adding lj-cut if more than $ljcut_delta lines |
|
# is left in the posting. |
|
# |
|
if ($opt_ljcut>0) { |
|
my $nlines = scalar( my @junk=split( /\n/, $hr->{event}, -1) ) - 1; |
|
my $start=0; |
|
for (my $i=0; $i<$opt_ljcut; $i++) { |
|
$start=index($hr->{event},"\n",$start)+1; |
|
if ($start == 0) { |
|
last; |
|
} |
|
} |
|
# And insert the lj-cut if not too close to the end of the post. |
|
if ($start>0 ) { |
|
if ( $nlines >= $opt_ljcut+$ljcut_delta ) { |
|
my $ljcut = ( $opt_ljcut_text =~ /^\s*$/ ) ? |
|
'<lj-cut>' : |
|
'<lj-cut text="' . $opt_ljcut_text . '">' ; |
|
substr($hr->{event}, $start,0) = $ljcut ; |
|
} else { |
|
print STDERR "'--cut $opt_ljcut' requested, which is " . |
|
"within $ljcut_delta of the total $nlines " . |
|
"lines. Skipping lj-cut.\n" ; |
|
} |
|
} |
|
} |
|
|
$req->content_type('application/x-www-form-urlencoded'); |
$req->content_type('application/x-www-form-urlencoded'); |
$req->content(href2string $hr) ; |
$req->content(href2string $hr) ; |
Line 860 Options:
|
Line 904 Options:
|
single or double quotes to protect from the shell. Multiple |
single or double quotes to protect from the shell. Multiple |
'-t' options are allowed and taglists will be combined. |
'-t' options are allowed and taglists will be combined. |
|
|
|
--notaglist, --notags |
|
Unsets all previously defined tags. Thus, a call to |
|
$shortname ... --tags X --tags Y ... --notags --tags Z |
|
will yield a taglist consisting of just "Z". This option is |
|
rarely needed and added only for the sake of completeness. |
|
|
-d DATE, --date DATE |
-d DATE, --date DATE |
Label posting with this date. Date should be in LiveJournal's |
Label posting with this date. Date should be in LiveJournal's |
format: DD.MM.YYYY HH:mm. If absent, current date/time is used. |
format: DD.MM.YYYY HH:mm. If absent, current date/time is used. |
Line 923 Options:
|
Line 973 Options:
|
better preserved in the journal. The option can be negated |
better preserved in the journal. The option can be negated |
('--nospaces'). Default is '--nospaces'. |
('--nospaces'). Default is '--nospaces'. |
|
|
|
--ljcut NUM, --cut NUM, -l NUM |
|
Inserts '<lj-cut>' after NUM lines of the post content. |
|
If the resulting lj-cut happens to be within $ljcut_delta lines from |
|
the end of the post, the cut will not be added. |
|
|
|
--ljcut-text TEXT, --cut-text TEXT, --cuttext TEXT |
|
Text to use as lj-cut text parameter (in <lj-cut text="TEXT">). |
|
If the text contains nothing but whitespace, it is ignored. |
|
Remember to quote spaces and special characters from the shell. |
|
|
--charset CHARSET |
--charset CHARSET |
This option tells the script that all COMMAND LINE options are |
This option tells the script that all COMMAND LINE options are |
given in this charset. Default is "$SystemCharset". |
given in this charset. Default is "$SystemCharset". |
Line 931 Options:
|
Line 991 Options:
|
utf8). It also has absolutely no effect on the in-the-body |
utf8). It also has absolutely no effect on the in-the-body |
keywords (they are also governed by email's charset). This |
keywords (they are also governed by email's charset). This |
option is meaningful ONLY for the text that you supply VIA |
option is meaningful ONLY for the text that you supply VIA |
COMMAND LINE (e.g. '-s Subject'). |
COMMAND LINE (e.g. '-s Subject' or '--cuttext TEXT'). |
|
|
-b xxx\@yyy, --bounces xxx\@yyy |
-b xxx\@yyy, --bounces xxx\@yyy |
Normally, if errors occur during posting (e.g. wrong password), |
Normally, if errors occur during posting (e.g. wrong password), |
Line 959 command line options), they should look
|
Line 1019 command line options), they should look
|
Security: private |
Security: private |
Subject: Rzhevskij zhiv! |
Subject: Rzhevskij zhiv! |
Tags: Junk, Viva Rzhevskij! |
Tags: Junk, Viva Rzhevskij! |
|
Notags: yes # Clears all preceding tags |
Formatted: on # Or equivalent "Autoformat: off" |
Formatted: on # Or equivalent "Autoformat: off" |
Usejournal: gusary |
Usejournal: gusary |
Mood: okay |
Mood: okay |