commit d28973ca33f219614fb416dffb3df226ee32c958
parent f7f1f6e0600b52c03ab4a513b2ff14921ff3f58b
Author: Sascha Silbe <sascha-pgp@silbe.org>
Date: Tue, 18 Jan 2011 19:24:27 +0100
poll: fix message update vs. already-imported detection
poll_from prepends existing locations to the "new" message, so we can't use
just the first location.
While using the last location would work, calculating the difference should be
fast and is more robust in the face of future changes to poll_from.
Signed-off-by: Sascha Silbe
Diffstat:
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/lib/sup/poll.rb b/lib/sup/poll.rb
@@ -115,10 +115,11 @@ EOS
yield "Deleting #{m.id}"
elsif action == :add
if old_m
- if not old_m.locations.member? m.location
- yield "Message at #{m.source_info} is an updated of an old message. Updating labels from #{old_m.labels.to_a * ','} => #{m.labels.to_a * ','}"
+ new_locations = (m.locations - old_m.locations)
+ if not new_locations.empty?
+ yield "Message at #{new_locations[0].info} is an update of an old message. Updating labels from #{old_m.labels.to_a * ','} => #{m.labels.to_a * ','}"
else
- yield "Skipping already-imported message at #{m.source_info}"
+ yield "Skipping already-imported message at #{m.locations[-1].info}"
end
else
yield "Found new message at #{m.source_info} with labels #{m.labels.to_a * ','}"