X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FNetReader.pm;h=2795a9d4d85e4bbc21c7669a13825db1d6870ba8;hb=84cc78416994832973c44aab08814b43a0fe7e51;hp=b97444fded2870a28338534fd7aa1fef4fbfafdc;hpb=525d14996e820e7bf2b5e035cf5826b6530f6d92;p=public-inbox.git diff --git a/lib/PublicInbox/NetReader.pm b/lib/PublicInbox/NetReader.pm index b97444fd..2795a9d4 100644 --- a/lib/PublicInbox/NetReader.pm +++ b/lib/PublicInbox/NetReader.pm @@ -409,7 +409,7 @@ sub flags2kw ($$$$) { warn "# unknown IMAP flag $f <$uri/;UID=$uid>\n"; } } - @$kw = sort @$kw; # for all UI/UX purposes + @$kw = sort @$kw; # for LeiSearch->kw_changed and UI/UX purposes $kw; } @@ -471,6 +471,7 @@ sub each_old_flags ($$$$) { while (my ($uid, $per_uid) = each %$r) { my $kw = flags2kw($self, $uri, $uid, $per_uid->{FLAGS}) // next; + # LeiImport->input_net_cb $eml_cb->($uri, $uid, $kw, undef, @args); } } @@ -746,4 +747,23 @@ sub nntp_each { sub new { bless {}, shift }; +# updates $uri with UIDVALIDITY +sub mic_for_folder { + my ($self, $uri) = @_; + my $mic = $self->mic_get($uri) or die "E: not connected: $@"; + my $m = $self->isa('PublicInbox::NetWriter') ? 'select' : 'examine'; + $mic->$m($uri->mailbox) or return; + my $uidval; + for ($mic->Results) { + /^\* OK \[UIDVALIDITY ([0-9]+)\].*/ or next; + $uidval = $1; + last; + } + $uidval //= $mic->uidvalidity($uri->mailbox) or + die "E: failed to get uidvalidity from <$uri>: $@"; + $uri->uidvalidity($uidval); + $mic; +} + + 1;