From 1b4b2c7b8b2f2df8f114617d2e875eaf5c839ce0 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 1 Sep 2015 08:55:26 +0000 Subject: completely revamp URL structure to shorten permalinks This allows common /m/ links to be used without a prefix, saving 2 precious bytes for permalinks and raw messages. Old URLs continue to redirect. --- lib/PublicInbox/Feed.pm | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'lib/PublicInbox/Feed.pm') diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm index 9d581935..4420fde1 100644 --- a/lib/PublicInbox/Feed.pm +++ b/lib/PublicInbox/Feed.pm @@ -101,7 +101,7 @@ sub emit_atom_thread { my $feed_opts = get_feedopts($ctx); my $html_url = $feed_opts->{atomurl} = $ctx->{self_url}; - $html_url =~ s!/atom\z!/!; + $html_url =~ s!/t\.atom\z!/!; $feed_opts->{url} = $html_url; $feed_opts->{emit_header} = 1; @@ -285,7 +285,7 @@ sub get_feedopts { } $url_base = "$base/$listname"; if (my $mid = $ctx->{mid}) { # per-thread feed: - $rv{atomurl} = "$url_base/t/$mid/atom"; + $rv{atomurl} = "$url_base/$mid/t.atom"; } else { $rv{atomurl} = "$url_base/new.atom"; } @@ -294,8 +294,7 @@ sub get_feedopts { $rv{atomurl} = "$url_base/new.atom"; } $rv{url} ||= "$url_base/"; - $rv{midurl} = "$url_base/m/"; - $rv{fullurl} = "$url_base/f/"; + $rv{midurl} = "$url_base/"; \%rv; } @@ -317,14 +316,15 @@ sub add_to_feed { my ($feed_opts, $fh, $add, $git) = @_; my $mime = do_cat_mail($git, $add) or return 0; - my $fullurl = $feed_opts->{fullurl} || 'http://example.com/f/'; + my $url = $feed_opts->{url}; + my $midurl = $feed_opts->{midurl}; my $header_obj = $mime->header_obj; my $mid = $header_obj->header('Message-ID'); defined $mid or return 0; $mid = PublicInbox::Hval->new_msgid($mid); - my $href = $mid->as_href . '/'; - my $content = PublicInbox::View->feed_entry($mime, $fullurl . $href); + my $href = $mid->as_href; + my $content = PublicInbox::View->feed_entry($mime, "$midurl$href/f/"); defined($content) or return 0; $mime = undef; @@ -355,8 +355,7 @@ sub add_to_feed { my $h = '[a-f0-9]'; my (@uuid5) = ($add =~ m!\A($h{8})($h{4})($h{4})($h{4})($h{12})!o); my $id = 'urn:uuid:' . join('-', @uuid5); - my $midurl = $feed_opts->{midurl}; - $fh->write(qq{}. + $fh->write(qq!!. "$id"); 1; } @@ -414,7 +413,7 @@ sub dump_topics { $mid = PublicInbox::Hval->new($mid)->as_href; $subj = PublicInbox::Hval->new($subj)->as_html; $u = PublicInbox::Hval->new($u)->as_html; - $dst .= "\n$subj\n- "; + $dst .= "\n$subj\n- "; $ts = strftime('%Y-%m-%d %H:%M', gmtime($ts)); if ($n == 1) { $dst .= "created by $u @ $ts UTC\n" -- cgit v1.2.3-24-ge0c7