diff options
-rw-r--r-- | lib/PublicInbox/Feed.pm | 8 | ||||
-rw-r--r-- | 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; } @@ -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"); } |