X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fsup%2Fpoll.rb;h=74f7d1ce67765c668e73de67afa4a0de97478e00;hb=6a88cfad209417cef169d4cb52a25d7d7071a7b5;hp=fb4abb2526771422579020407bb0ba671391485a;hpb=d59cd98cf422bf073153f7c09b95f3392f97a404;p=sup diff --git a/lib/sup/poll.rb b/lib/sup/poll.rb index fb4abb2..74f7d1c 100644 --- a/lib/sup/poll.rb +++ b/lib/sup/poll.rb @@ -137,33 +137,30 @@ EOS def add_messages_from source, opts={} begin return if source.done? || source.has_errors? - + source.each do |offset, labels| if source.has_errors? Redwood::log "error loading messages from #{source}: #{source.error.message}" return end - + + labels << :sent if source.uri.eql?(SentManager.source_uri) labels.each { |l| LabelManager << l } labels = labels + (source.archived? ? [] : [:inbox]) - begin - m = Message.new :source => source, :source_info => offset, :labels => labels - m.load_from_source! - - if m.source_marked_read? - m.remove_label :unread - labels.delete :unread - end + m = Message.new :source => source, :source_info => offset, :labels => labels + m.load_from_source! - docid, entry = Index.load_entry_for_id m.id - HookManager.run "before-add-message", :message => m - m = yield(m, offset, entry) or next if block_given? - times = Index.sync_message m, false, docid, entry, opts - UpdateManager.relay self, :added, m unless entry - rescue MessageFormatError => e - Redwood::log "ignoring erroneous message at #{source}##{offset}: #{e.message}" + if m.source_marked_read? + m.remove_label :unread + labels.delete :unread end + + docid, entry = Index.load_entry_for_id m.id + HookManager.run "before-add-message", :message => m + m = yield(m, offset, entry) or next if block_given? + times = Index.sync_message m, false, docid, entry, opts + UpdateManager.relay self, :added, m unless entry end rescue SourceError => e Redwood::log "problem getting messages from #{source}: #{e.message}"