#!/usr/bin/perl

use strict;
use warnings;

use MIME::Parser;
use Net::Blogger::Engine::Base;

my $parser = new MIME::Parser();
$parser->output_to_core(1);
$parser->decode_headers(1);

my $top = $parser->parse(\*STDIN);

my $type = $top->effective_type();
die "Cannot handle top-level type \"$type\"\n"
    unless ($type eq 'text/plain');

my $header = $top->head();
my $io = $top->open('r')
    or die "Cannot read message body\n";
my $body = '';
my $any_trailing_spaces;
while (defined($_ = $io->getline())) {
  if (/\S/ && ($body =~ / \r?\n\Z/)) {
    chomp($body);
    $any_trailing_spaces = 1;
  }
  $body .= $_;
}
$io->close();

if (!$any_trailing_spaces) {
  $body =~ s/([^\s\r\n])\r?\n([^\s\r\n*-])/$1 $2/g;
}

$body =~ s/\A[\r\n]+//;
$body =~ s/[\r\n]+\Z//;

my $blogger = new Net::Blogger::Engine::Base({blogid => 1,
                                              username => 'xxx',
                                              password => 'xxx'});
$blogger->Proxy('http://your.blog/xmlrpc.php');

my $postbody = join('',
                    '<title>',
                    $header->get('subject'),
                    '</title>',
                    $body);

$blogger->newPost({postbody => \$postbody,
                   publish => 1});

