]> Sergey Matveev's repositories - public-inbox.git/commitdiff
net_reader|net_writer: pass URI refs deeper into callbacks
authorEric Wong <e@80x24.org>
Sun, 23 May 2021 01:38:26 +0000 (01:38 +0000)
committerEric Wong <e@80x24.org>
Sun, 23 May 2021 19:35:05 +0000 (19:35 +0000)
This will give us more flexibility in the future w.r.t.
dealing with UIDVALIDITY and AUTH= info with IMAP.  The LoC
reduction is welcome, too.

lib/PublicInbox/LeiImport.pm
lib/PublicInbox/LeiToMail.pm
lib/PublicInbox/NetReader.pm
lib/PublicInbox/NetWriter.pm

index 55925cc5ae7287093190927fe43185cbaf6cdb88..01e6c93ce0509f89e178bbea3be4d44738656f93 100644 (file)
@@ -42,9 +42,9 @@ sub input_maildir_cb { # maildir_each_eml cb
 }
 
 sub input_net_cb { # imap_each / nntp_each
-       my ($url, $uid, $kw, $eml, $self) = @_;
+       my ($uri, $uid, $kw, $eml, $self) = @_;
        my $vmd = $self->{-import_kw} ? { kw => $kw } : undef;
-       $vmd->{sync_info} = [ $url, $uid ] if $self->{-mail_sync};
+       $vmd->{sync_info} = [ $$uri, $uid ] if $self->{-mail_sync};
        $self->input_eml_cb($eml, $vmd);
 }
 
index 96a1f8815dd3eb8c9f0a45e1701d9c33a8c7b124..b9d4c8563fa643c3ac012557bdd6adecc16d4ae6 100644 (file)
@@ -452,10 +452,10 @@ sub _do_augment_maildir {
 }
 
 sub _imap_augment_or_delete { # PublicInbox::NetReader::imap_each cb
-       my ($url, $uid, $kw, $eml, $lei, $lse, $delete_mic) = @_;
+       my ($uri, $uid, $kw, $eml, $lei, $lse, $delete_mic) = @_;
        update_kw_maybe($lei, $lse, $eml, $kw);
        if ($delete_mic) {
-               $lei->{net}->imap_delete_1($url, $uid, $delete_mic);
+               $lei->{net}->imap_delete_1($uri, $uid, $delete_mic);
        } else {
                _augment($eml, $lei);
        }
index a532b2183654a233ed7cce33f761c971c3d6c466..73b8b1cd2c6424cc4acdcf8c33a27df90ed88867 100644 (file)
@@ -397,7 +397,7 @@ sub errors {
 }
 
 sub _imap_do_msg ($$$$$) {
-       my ($self, $url, $uid, $raw, $flags) = @_;
+       my ($self, $uri, $uid, $raw, $flags) = @_;
        # our target audience expects LF-only, save storage
        $$raw =~ s/\r\n/\n/sg;
        my $kw = [];
@@ -408,12 +408,12 @@ sub _imap_do_msg ($$$$$) {
                } elsif ($f eq "\\Deleted") { # not in JMAP
                        return;
                } elsif ($self->{verbose}) {
-                       warn "# unknown IMAP flag $f <$url/;UID=$uid>\n";
+                       warn "# unknown IMAP flag $f <$uri/;UID=$uid>\n";
                }
        }
        @$kw = sort @$kw; # for all UI/UX purposes
        my ($eml_cb, @args) = @{$self->{eml_each}};
-       $eml_cb->($url, $uid, $kw, PublicInbox::Eml->new($raw), @args);
+       $eml_cb->($uri, $uid, $kw, PublicInbox::Eml->new($raw), @args);
 }
 
 sub run_commit_cb ($) {
@@ -532,7 +532,7 @@ EOF
                                # messages get deleted, so holes appear
                                my $per_uid = delete $r->{$uid} // next;
                                my $raw = delete($per_uid->{$key}) // next;
-                               _imap_do_msg($self, $$uri, $uid, \$raw,
+                               _imap_do_msg($self, $uri, $uid, \$raw,
                                                $per_uid->{FLAGS});
                                $last_uid = $uid;
                                last if $self->{quit};
@@ -638,7 +638,6 @@ sub _nntp_fetch_all ($$$) {
                warn "# $uri fetching ARTICLE $beg..$end\n";
        }
        my $n = $self->{max_batch};
-       my $url = $$uri;
        for ($beg..$end) {
                last if $self->{quit};
                $art = $_;
@@ -661,7 +660,7 @@ sub _nntp_fetch_all ($$$) {
                $raw = join('', @$raw);
                $raw =~ s/\r\n/\n/sg;
                my ($eml_cb, @args) = @{$self->{eml_each}};
-               $eml_cb->($url, $art, $kw, PublicInbox::Eml->new(\$raw), @args);
+               $eml_cb->($uri, $art, $kw, PublicInbox::Eml->new(\$raw), @args);
                $last_art = $art;
        }
        run_commit_cb($self);
index 06d69f2787a6d218e78bfadfbaae8b1661bae158..2032a1fd22291c55715c170942ff529ca842183c 100644 (file)
@@ -28,18 +28,14 @@ sub imap_append {
 
 sub mic_for_folder {
        my ($self, $uri) = @_;
-       if (!ref($uri)) {
-               my $u = PublicInbox::URIimap->new($uri);
-               $_[1] = $uri = $u;
-       }
        my $mic = $self->mic_get($uri) or die "E: not connected: $@";
        $mic->select($uri->mailbox) or return;
        $mic;
 }
 
 sub imap_delete_all {
-       my ($self, $url) = @_;
-       my $mic = mic_for_folder($self, my $uri = $url) or return;
+       my ($self, $uri) = @_;
+       my $mic = mic_for_folder($self, $uri) or return;
        my $sec = $self->can('uri_section')->($uri);
        local $0 = $uri->mailbox." $sec";
        if ($mic->delete_message('1:*')) {
@@ -48,8 +44,8 @@ sub imap_delete_all {
 }
 
 sub imap_delete_1 {
-       my ($self, $url, $uid, $delete_mic) = @_;
-       $$delete_mic //= mic_for_folder($self, my $uri = $url) or return;
+       my ($self, $uri, $uid, $delete_mic) = @_;
+       $$delete_mic //= mic_for_folder($self, $uri) or return;
        $$delete_mic->delete_message($uid);
 }