commit 8f7a9a4697c9b6250d14b65d66d44929975f40c8 from: Omar Polo date: Tue Apr 04 14:44:43 2023 UTC move thrslice to GotMARC.pm and add it hidden in thread_header commit - 181eab119235a3dc75592fbbb8b8c6add017db75 commit + 8f7a9a4697c9b6250d14b65d66d44929975f40c8 blob - f5b7f092c6cc63635fcba6e020e6a2196a58e99c blob + 2f7230899ca5f4d92033805a91393b01842bfa75 --- GotMArc.pm +++ GotMArc.pm @@ -11,7 +11,7 @@ use File::Basename; our @ISA = qw(Exporter); our @EXPORT_OK = qw(san urlencode parse initpage endpage index_header - thread_header threntry); + thread_header threntry thrslice); sub san { my $str = shift; @@ -91,11 +91,13 @@ sub index_header { } sub thread_header { - my ($fh, $tid, $mid, $e) = @_; + my ($fh, $e, $mail, $p, $n, $spoiler) = @_; + $spoiler = 0 unless defined $spoiler; + my @entries = @$e; - my $enctid = urlencode $tid if defined $tid; - my $encmid = urlencode $mid if defined $mid; + my $enctid = urlencode $mail->{tid} if defined $mail; + my $encmid = urlencode $mail->{mid} if defined $mail; print $fh "
\n"; @@ -118,6 +120,11 @@ sub thread_header { say $fh "

Download raw body.

" if defined $encmid; + say $fh "
" if $spoiler; + say $fh "Thread" if $spoiler; + thrslice($fh, $mail, $p, $n) if defined $p and defined $n; + say $fh "
" if $spoiler; + say $fh "
\n"; } @@ -151,4 +158,28 @@ sub threntry { return $level; } +sub min_level { + my $l = 999; + return 0 unless @_; + for (@_) { + $l = $_->{level} if $_->{level} < $l; + } + return $l; +} + +sub thrslice { + my ($fh, $mail, $p, $n) = @_; + my @prev = @{$p}; + my @next = @{$n}; + my @thread = (@prev, $mail, @next); + return unless @thread; + my $base = min_level @thread; + my $level = 0; + print $fh "
"; + print $fh "" x $level; + print $fh "
"; +} + 1; blob - 658e1b2ac3106a6041b84c1bdfa64996a592a2e8 blob + 7edfd18e5899171341b45a0ac8d248b83b04ed2b --- mexp +++ mexp @@ -16,7 +16,8 @@ use OpenBSD::Pledge; use OpenBSD::Unveil; use lib "."; -use GotMArc qw(parse san urlencode initpage endpage thread_header threntry); +use GotMArc qw(parse san urlencode initpage endpage thread_header + threntry thrslice); my $outdir = $ENV{'OUTDIR'}; die 'Set $OUTDIR' unless defined $outdir; @@ -90,30 +91,6 @@ sub thrnav { print $fh ""; } -sub min_level { - my $l = 999; - return 0 unless @_; - for (@_) { - $l = $_->{level} if $_->{level} < $l; - } - return $l; -} - -sub thrslice { - my ($fh, $mail, $p, $n) = @_; - my @prev = @{$p}; - my @next = @{$n}; - my @thread = (@prev, $mail, @next); - return unless @thread; - my $base = min_level @thread; - my $level = 0; - print $fh "
"; - print $fh "" x $level; - print $fh "
"; -} - sub export_one { my ($mail, $prev, $next) = @_; my $dest = "$outdir/mail/$mail->{mid}.html"; @@ -139,7 +116,7 @@ sub export_one { } say $text ""; - thread_header $fh, $mail->{tid}, $mail->{mid}, \@hdrs; + thread_header $fh, \@hdrs, $mail, $prev, $next, 1; print $fh "
";
 	while (<$mshow>) {
blob - ad5a88859f2a7ce765c00e2adf4a80cb056cb44e
blob + d659ee67cdec71fd62bf3467e94662909d08c354
--- mkindex
+++ mkindex
@@ -152,7 +152,7 @@ sub nextthread {
 	my $dest = "$outdir/thread/$mid.html";
 	open($tfh, '>', $dest) or die "can't open $dest: $!";
 	initpage($tfh, $subj);
-	thread_header $tfh, undef, undef, ["Thread: $subj"];
+	thread_header $tfh, ["Thread: $subj"];
 	print $tfh "
    \n"; }