commit f1ceade9f67fd8e6d5f2b278d97303fffd3f76c1 from: Omar Polo date: Wed Aug 24 10:33:53 2022 UTC exports (some) parts of the email commit - 0f4bb8d5b7459b701c7fa1795d0e89a9a9117ca9 commit + f1ceade9f67fd8e6d5f2b278d97303fffd3f76c1 blob - /dev/null blob + dfa538482f8b5d692b70ee75776909fed4fadc8e (mode 644) --- /dev/null +++ .mblaze/filter @@ -0,0 +1,2 @@ +application/pgp-signature: ./filter-ignore +application: ./filter-export blob - c1bbd22f8fa8221f8b916581587c019662354c13 blob + bf6ca9f2b573e71a41fcd7ef97791b936c9fc5f6 --- Makefile +++ Makefile @@ -11,8 +11,9 @@ all: .mblaze dirs assets ${ENV} ./mexp | ${ENV} ./mkindex > ${OUTDIR}/index.html dirs: - mkdir -p ${OUTDIR}/thread/ mkdir -p ${OUTDIR}/mbox/ + mkdir -p ${OUTDIR}/parts/ + mkdir -p ${OUTDIR}/thread/ assets: dirs got.png style.css cp got.png ${OUTDIR}/got@2x.png blob - /dev/null blob + 7bb747882cbad7cfd7a8435398ad492d42d41cd5 (mode 755) --- /dev/null +++ filter-export @@ -0,0 +1,10 @@ +#!/bin/sh + +path="$(cd $OUTDIR && mktemp parts/$MESSAGE_ID.XXXXXXXXXX)" + +# save the input +cat > "$OUTDIR/$path" + +ftype="$(file "$OUTDIR/$path")" +echo "
  • ${ftype#*:}
  • " >> parts.html +exit 0 blob - /dev/null blob + c52d3c26b35fd40696a3bd45f3aab0663ed0d4d9 (mode 755) --- /dev/null +++ filter-ignore @@ -0,0 +1,3 @@ +#!/bin/sh + +exit 0 blob - 36fb387384baf992962694d9168505bc1f28231d blob + 72c6a0607706032218ca0b1fdc2f00e262a4c498 --- mexp +++ mexp @@ -87,6 +87,11 @@ while (<>) { say $fh $hdr =~ s/TITLE/$subj/r; + # prepare the parts listing file + $ENV{'MESSAGE_ID'} = $mid; + open(my $parts, '+>', "parts.html") + or die "can't create parts.html: $!"; + open(my $mshow, "-|", "mshow", "-nNA", "text/plain", $fname) or die "can't exec mshow: $!"; @@ -124,10 +129,24 @@ while (<>) { print $fh san($body // ""); print $fh ""; + # generate the listing for the exported parts + my $part_seen = 0; + while (<$parts>) { + if (!$part_seen) { + $part_seen = 1; + say $fh "" if $part_seen; + print $fh $foot; close($mshow); + close($parts); close($fh); # exit(0); } + +unlink "parts.html";