about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-04-16 16:10:30 -0700
committerEric Wong <e@80x24.org>2021-04-16 22:24:47 -0400
commit604fa817dcd5d430931e6cfb921bd62f4cddc345 (patch)
treeea6d08b0386ec9dc58a13f8952d13003ea022213 /lib
parent17244996655fcbc47fb54c915360657367366c46 (diff)
downloadpublic-inbox-604fa817dcd5d430931e6cfb921bd62f4cddc345.tar.gz
NetReader->add_url supports URI-like objects, now.  We'll be
relying on the canonicalization for LeiSavedSearch.
Diffstat (limited to 'lib')
-rw-r--r--lib/PublicInbox/LeiToMail.pm12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/PublicInbox/LeiToMail.pm b/lib/PublicInbox/LeiToMail.pm
index 4ebaf8f3..daa8084b 100644
--- a/lib/PublicInbox/LeiToMail.pm
+++ b/lib/PublicInbox/LeiToMail.pm
@@ -335,14 +335,16 @@ sub new {
                 $self->{base_type} = 'mbox';
         } elsif ($fmt =~ /\Aimaps?\z/) { # TODO .onion support
                 require PublicInbox::NetWriter;
+                require PublicInbox::URIimap;
                 my $net = PublicInbox::NetWriter->new;
-                $net->add_url($dst);
                 $net->{quiet} = $lei->{opt}->{quiet};
-                my $err = $net->errors($dst);
+                my $uri = PublicInbox::URIimap->new($dst)->canonical;
+                $net->add_url($uri);
+                my $err = $net->errors;
                 return $lei->fail($err) if $err;
-                require PublicInbox::URIimap; # TODO: URI cast early
-                $self->{uri} = PublicInbox::URIimap->new($dst);
-                $self->{uri}->mailbox or die "No mailbox: $dst";
+                $uri->mailbox or return $lei->fail("No mailbox: $dst");
+                $self->{uri} = $uri;
+                $dst = $lei->{ovv}->{dst} = $$uri; # canonicalized
                 $lei->{net} = $net;
                 $self->{base_type} = 'imap';
         } else {