New importer, Nat. Geo. Wild.
[nonametv.git] / tools / no / nonametv-mailfilter
blobe500bb95f8f7aa300f7cc73c6925c328337a1074
1 #!/usr/bin/perl -w
3 use strict;
5 use MIME::Parser;
6 use MIME::Head;
7 use File::Temp qw/tempdir/;
8 use File::Copy qw/move/;
10 if( scalar( @ARGV ) != 1 )
12 print << "EOHELP";
13 Usage: cat mail | nonametv-mailfilter Importername
15 Extracts all attachments from the mail and runs nonametv-importer
16 with all the files.
18 EOHELP
20 exit 1;
23 my $importer = $ARGV[0];
24 my $filedir = tempdir( CLEANUP => 0 );
26 sub process_files
28 my( $ent, $imp ) = @_;
30 my @parts = $ent->parts;
32 if (@parts)
34 # multipart...
35 map { process_files($_, $imp) } @parts;
37 else
39 # single part...
40 my $recfn = $ent->head->recommended_filename || "noname";
41 move( $ent->bodyhandle->path, "$filedir/$recfn" );
42 print "nonametv-import $importer '$filedir/$recfn'\n";
47 my $msgdir = tempdir( CLEANUP => 1 );
48 print STDERR "Message: $msgdir\n";
50 # Create a new parser object:
51 my $parser = new MIME::Parser;
52 $parser->output_dir($msgdir);
54 my $entity = $parser->read(\*STDIN) or
55 print STDERR "Couldn't parse MIME\n";
57 # Congratulations: you now have a (possibly multipart) MIME entity!
58 process_files($entity, $importer);