X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FNetWriter.pm;h=82288e6bc6391106c0d2123ee7bc1e03c24af489;hb=84cc78416994832973c44aab08814b43a0fe7e51;hp=49ac02a6eedd6fae23cf6d3a5fbb3c93d1096233;hpb=1d0616b4ee744185ef6c1ff8672ea4521497406a;p=public-inbox.git diff --git a/lib/PublicInbox/NetWriter.pm b/lib/PublicInbox/NetWriter.pm index 49ac02a6..82288e6b 100644 --- a/lib/PublicInbox/NetWriter.pm +++ b/lib/PublicInbox/NetWriter.pm @@ -26,20 +26,9 @@ sub imap_append { die "APPEND $folder: $@"; } -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 = $self->mic_for_folder($uri) or return; my $sec = $self->can('uri_section')->($uri); local $0 = $uri->mailbox." $sec"; if ($mic->delete_message('1:*')) { @@ -48,22 +37,20 @@ 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 //= $self->mic_for_folder($uri) or return; $$delete_mic->delete_message($uid); } -sub imap_set_kw { - my ($self, $url, $uid, $kw) = @_; - my $mic = mic_for_folder($self, my $uri = $url) or return; - $mic->set_flag(kw2flags($kw), $uid); +sub imap_add_kw { + my ($self, $mic, $uid, $kw) = @_; + $mic->store($uid, '+FLAGS.SILENT', '('.kw2flags($kw).')'); $mic; # caller must ->expunge } -sub imap_unset_kw { - my ($self, $url, $uid, $kw) = @_; - my $mic = mic_for_folder($self, my $uri = $url) or return; - $mic->unset_flag(kw2flags($kw), $uid); +sub imap_set_kw { + my ($self, $mic, $uid, $kw) = @_; + $mic->store($uid, 'FLAGS.SILENT', '('.kw2flags($kw).')'); $mic; # caller must ->expunge }