- if Index.add_message m
- UpdateManager.relay :add, m
- num += 1
- total_num += 1
- total_numi += 1 if m.labels.include? :inbox
+ if Index.add_message m
+ UpdateManager.relay :add, m
+ num += 1
+ total_num += 1
+ total_numi += 1 if m.labels.include? :inbox
+ end
+
+ if num % 1000 == 0 && num > 0
+ elapsed = Time.now - start
+ pctdone = source.pct_done
+ remaining = (100.0 - pctdone) * (elapsed.to_f / pctdone)
+ yield "## #{num} (#{pctdone}% done) read; #{elapsed.to_time_s} elapsed; est. #{remaining.to_time_s} remaining"
+ end
+ rescue SourceError => e
+ msg = "Fatal error loading from #{source}: #{e.message}"
+ Redwood::log msg
+ yield msg
+ break