elapsed = last_update - start
pctdone = source.respond_to?(:pct_done) ? source.pct_done : 100.0 * (source.cur_offset.to_f - source.start_offset).to_f / (source.end_offset - source.start_offset).to_f
remaining = (100.0 - pctdone) * (elapsed.to_f / pctdone)
- puts "## #{num} (#{pctdone}% done) read; #{elapsed.to_time_s} elapsed; est. #{remaining.to_time_s} remaining"
+ puts "## #{num_added + num_updated} (#{pctdone}% done) read; #{elapsed.to_time_s} elapsed; est. #{remaining.to_time_s} remaining"
end
## update if...
# puts "got #{mid}"
next if found[mid]
puts "Deleting #{mid}" if opts[:verbose]
- index.index.delete docid
+ #index.index.delete docid
numdel += 1
end
end
labels.each { |l| LabelManager << l }
- m = Message.new :source => source, :source_info => offset, :labels => labels
- if m.source_marked_read?
- m.remove_label :unread
- labels.delete :unread
- end
+ begin
+ m = Message.new :source => source, :source_info => offset, :labels => labels
+ if m.source_marked_read?
+ m.remove_label :unread
+ labels.delete :unread
+ end
- docid, entry = Index.load_entry_for_id m.id
- m = yield m, offset, entry
- next unless m
- if entry
- Index.update_message m, docid, entry
- else
- Index.add_message m
- UpdateManager.relay self, :add, m
+ docid, entry = Index.load_entry_for_id m.id
+ m = yield m, offset, entry
+ next unless m
+ if entry
+ Index.update_message m, docid, entry
+ else
+ Index.add_message m
+ UpdateManager.relay self, :add, m
+ end
+ rescue MessageFormatError, SourceError => e
+ Redwood::log "ignoring erroneous message at #{source}##{offset}: #{e.message}"
end
end
- rescue MessageFormatError, SourceError => e
- Redwood::log "found problem with #{source}: #{e.message}"
+ rescue SourceError => e
+ Redwood::log "problem getting messages from #{source}: #{e.message}"
end
end
end