diff options
author | Eric Wong <e@80x24.org> | 2016-05-15 23:30:06 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2016-05-15 23:50:05 +0000 |
commit | 1269631ae596b910b7c26890c3efa9f85301a89b (patch) | |
tree | 12e92d52e4f89a4edf821c3a0cb027f1c1504ec5 /lib/PublicInbox/WWW.pm | |
parent | 0407eb7a0c2376d0395ef93f50fd2ed0aeeace1f (diff) | |
download | public-inbox-1269631ae596b910b7c26890c3efa9f85301a89b.tar.gz |
Allows easily downloading the entire archive without special tools. In any case, it's not yet advertised to via HTML until we can test it better. It'll also support range queries in the future to avoid wasting bandwidth.
Diffstat (limited to 'lib/PublicInbox/WWW.pm')
-rw-r--r-- | lib/PublicInbox/WWW.pm | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/PublicInbox/WWW.pm b/lib/PublicInbox/WWW.pm index 85cb234b..51dc3daa 100644 --- a/lib/PublicInbox/WWW.pm +++ b/lib/PublicInbox/WWW.pm @@ -68,6 +68,8 @@ sub call { my $path = $2; invalid_inbox($self, $ctx, $1) || serve_git($cgi, $ctx->{git}, $path); + } elsif ($path_info =~ m!$INBOX_RE/([\w-]+).mbox\.gz\z!o) { + serve_mbox_range($self, $ctx, $1, $2); } elsif ($path_info =~ m!$INBOX_RE/$MID_RE/$END_RE\z!o) { msg_page($self, $ctx, $1, $2, $3); @@ -430,6 +432,15 @@ sub serve_git { PublicInbox::GitHTTPBackend::serve($cgi, $git, $path); } +sub serve_mbox_range { + my ($self, $ctx, $inbox, $range) = @_; + invalid_inbox($self, $ctx, $inbox) || eval { + require PublicInbox::Mbox; + searcher($ctx); + PublicInbox::Mbox::emit_range($ctx, $range); + } +} + sub news_www { my ($self) = @_; my $nw = $self->{news_www}; |