about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/PublicInbox/Feed.pm9
-rw-r--r--lib/PublicInbox/WWW.pm13
2 files changed, 10 insertions, 12 deletions
diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm
index ffbf5c80..2983514c 100644
--- a/lib/PublicInbox/Feed.pm
+++ b/lib/PublicInbox/Feed.pm
@@ -119,17 +119,18 @@ sub end_feed {
 
 sub emit_atom_thread {
         my ($cb, $ctx) = @_;
-        my $res = $ctx->{srch}->get_thread($ctx->{mid});
+        my $mid = $ctx->{mid};
+        my $res = $ctx->{srch}->get_thread($mid);
         return _no_thread($cb) unless $res->{total};
         my $feed_opts = get_feedopts($ctx);
         my $fh = $cb->([200, ['Content-Type' => 'application/atom+xml']]);
+        my $ibx = $ctx->{-inbox};
+        my $html_url = $ibx->base_url($ctx->{env});
+        $html_url .= PublicInbox::Hval->new_msgid($mid)->as_href;
 
-        my $html_url = $feed_opts->{atomurl} = $ctx->{self_url};
-        $html_url =~ s!/t\.atom\z!/!;
         $feed_opts->{url} = $html_url;
         $feed_opts->{emit_header} = 1;
 
-        my $ibx = $ctx->{-inbox};
         foreach my $msg (@{$res->{msgs}}) {
                 my $s = feed_entry($feed_opts, mid2path($msg->mid), $ibx);
                 $fh->write($s) if defined $s;
diff --git a/lib/PublicInbox/WWW.pm b/lib/PublicInbox/WWW.pm
index 940e1c51..54253086 100644
--- a/lib/PublicInbox/WWW.pm
+++ b/lib/PublicInbox/WWW.pm
@@ -13,7 +13,6 @@ package PublicInbox::WWW;
 use 5.008;
 use strict;
 use warnings;
-use Plack::Request;
 use PublicInbox::Config;
 use PublicInbox::Hval;
 use URI::Escape qw(uri_escape_utf8 uri_unescape);
@@ -40,9 +39,7 @@ sub run {
 
 sub call {
         my ($self, $env) = @_;
-        my $cgi = Plack::Request->new($env);
-        my $ctx = { cgi => $cgi, env => $env, www => $self,
-                pi_config => $self->{pi_config} };
+        my $ctx = { env => $env, www => $self, pi_config => $self->{pi_config} };
 
         # we don't care about multi-value
         my %qp = map {
@@ -267,10 +264,11 @@ sub footer {
         my $urls;
         my @urls = @{$obj->cloneurl};
         my %seen = map { $_ => 1 } @urls;
-        my $cgi = $ctx->{cgi};
-        my $http = $cgi->base->as_string . $obj->{name};
+        my $env = $ctx->{env};
+        my $http = $obj->base_url($env);
+        chop $http;
         $seen{$http} or unshift @urls, $http;
-        my $ssoma_url = PublicInbox::Hval::prurl($ctx->{env}, SSOMA_URL);
+        my $ssoma_url = PublicInbox::Hval::prurl($env, SSOMA_URL);
         if (scalar(@urls) == 1) {
                 $urls = "URL for <a\nhref=\"" . $ssoma_url .
                         qq(">ssoma</a> or <b>git clone --mirror $urls[0]</b>);
@@ -329,7 +327,6 @@ sub get_thread_mbox {
 sub get_thread_atom {
         my ($ctx) = @_;
         searcher($ctx) or return need_search($ctx);
-        $ctx->{self_url} = $ctx->{cgi}->uri->as_string;
         require PublicInbox::Feed;
         PublicInbox::Feed::generate_thread_atom($ctx);
 }