From 604fa817dcd5d430931e6cfb921bd62f4cddc345 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 16 Apr 2021 16:10:30 -0700 Subject: [PATCH] lei_to_mail: cast to URIimap object early NetReader->add_url supports URI-like objects, now. We'll be relying on the canonicalization for LeiSavedSearch. --- lib/PublicInbox/LeiToMail.pm | 12 +++++++----- 1 file 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 { -- 2.44.0