From f5a852a0fbaad70512abdbf4332dca343b85bc89 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 27 Apr 2014 05:04:02 +0000 Subject: [PATCH] Feed: element must be a URI, oops :x For each feed element, we'll just use the link since there's currently no suitable URN. --- lib/PublicInbox/Feed.pm | 8 ++++++-- t/feed.t | 5 +++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm index a8578e76..2dc3940f 100644 --- a/lib/PublicInbox/Feed.pm +++ b/lib/PublicInbox/Feed.pm @@ -36,7 +36,7 @@ sub generate { href => $feed_opts->{atomurl} || "http://example.com/atom.xml", }, - id => $addr || 'public-inbox@example.com', + id => 'mailto:' . ($addr || 'public-inbox@example.com'), updated => POSIX::strftime(DATEFMT, gmtime), ); @@ -278,13 +278,17 @@ sub add_to_feed { my $date = $mime->header('Date'); $date = PublicInbox::Hval->new_oneline($date); $date = feed_date($date->raw) or return 0; + $add =~ tr!/!!d; + my $h = '[a-f0-9]'; + my (@uuid5) = ($add =~ m!\A($h{8})($h{4})($h{4})($h{4})($h{12})!o); + $feed->add_entry( author => { name => $name, email => $email }, title => $subject, updated => $date, content => { type => "html", content => $content }, link => $midurl . $href, - id => $add, + id => 'urn:uuid:' . join('-', @uuid5), ); 1; } diff --git a/t/feed.t b/t/feed.t index a6bffdcd..880716cc 100644 --- a/t/feed.t +++ b/t/feed.t @@ -58,7 +58,7 @@ EOF my $p = XML::Feed->parse(\$feed); is($p->format, "Atom", "parsed atom feed"); is(scalar $p->entries, 3, "parsed three entries"); - is($p->id, 'public-inbox@example.com', + is($p->id, 'mailto:public-inbox@example.com', "id is set to default"); } @@ -142,7 +142,8 @@ EOF SKIP: { skip 'XML::Feed missing', 3 unless $have_xml_feed; my $p = XML::Feed->parse(\$feed); - is($p->id, 'a@example.com', "ID is set correctly"); + is($p->id, 'mailto:a@example.com', + "ID is set correctly"); is($p->format, "Atom", "parsed atom feed"); is(scalar $p->entries, 3, "parsed three entries"); } -- 2.44.0