4 use Email::LocalDelivery;
6 use Convert::YText qw(decode_ytext encode_ytext);
8 # we need at least version 2.54 of IkiWiki for the new config api
9 BEGIN { require IkiWiki; die unless ($IkiWiki::version >= 2.54) }
15 my $config_file=undef;
17 GetOptions('config=s'=>\$config_file);
19 die "configuration file is mandatory" unless ($config_file);
21 my %config=IkiWiki::Setup::load($config_file);
23 my $queue=$config{queue} || croak("missing queue location");
25 my $folder=Email::Folder->new($path,reader=>'Email::Folder::maildir')
26 || croak("mailbox could not be opened");
28 for my $messages ($folder->messages){
31 if ($to =~ m/$prefix($Convert::YText::valid_rex)/){
32 my $page=decode_ytext($1);
34 # sanity check the page path
36 # check if comments folder exists, create if needed
38 # write the message to the folder
40 $msg_file= $comment_folder->write($message);
42 # update vcs, copied from Ikiwiki::Plugins::attachment
45 IkiWiki::rcs_add($filename);
46 IkiWiki::disable_commit_hook();
47 IkiWiki::rcs_commit($filename, gettext("attachment upload"),
48 IkiWiki::rcs_prepedit($filename),
49 $session->param("name"), $ENV{REMOTE_ADDR});
50 IkiWiki::enable_commit_hook();
51 IkiWiki::rcs_update();
56 push (@must_die, $message->message-id);
58 $folder->delete($message);
67 # make regex for message-id
69 # called delete_message from Email::Delete