From 6a3c1e29ce1da699af27603e1787a284c7395d57 Mon Sep 17 00:00:00 2001 From: Lucas Nussbaum Date: Wed, 6 May 2009 13:39:07 +0200 Subject: Use Message-Id instead of X-CacheIndex --- lib/feed2imap/feed2imap.rb | 9 ++++++--- lib/feed2imap/imap.rb | 4 ++-- lib/feed2imap/itemtomail.rb | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/feed2imap/feed2imap.rb b/lib/feed2imap/feed2imap.rb index 3627ab0..fb8fb12 100644 --- a/lib/feed2imap/feed2imap.rb +++ b/lib/feed2imap/feed2imap.rb @@ -234,14 +234,17 @@ class Feed2Imap @logger.info("#{f.name}: #{newitems.length} new items, #{updateditems.length} updated items.") if newitems.length > 0 or updateditems.length > 0 or @logger.level == Logger::DEBUG begin if !cacherebuild + fn = f.name.gsub(/[^0-9A-Za-z]/,'') updateditems.each do |i| - email = item_to_mail(i, i.cacheditem.index, true, f.name, f.include_images, f.wrapto) + id = "<#{fn}-#{i.cacheditem.index}@acme.com>" + email = item_to_mail(i, id, true, f.name, f.include_images, f.wrapto) f.imapaccount.updatemail(f.folder, email, - i.cacheditem.index, i.date || Time::new) + id, i.date || Time::new) end # reverse is needed to upload older items first (fixes gna#8986) newitems.reverse.each do |i| - email = item_to_mail(i, i.cacheditem.index, false, f.name, f.include_images, f.wrapto) + id = "<#{fn}-#{i.cacheditem.index}@acme.com>" + email = item_to_mail(i, id, false, f.name, f.include_images, f.wrapto) f.imapaccount.putmail(f.folder, email, i.date || Time::new) end end diff --git a/lib/feed2imap/imap.rb b/lib/feed2imap/imap.rb index 63cd733..6840c11 100644 --- a/lib/feed2imap/imap.rb +++ b/lib/feed2imap/imap.rb @@ -102,10 +102,10 @@ class ImapAccount end # update a mail - def updatemail(folder, mail, idx, date = Time::now) + def updatemail(folder, mail, id, date = Time::now) create_folder_if_not_exists(folder) @connection.select(folder) - searchres = @connection.search(['HEADER', 'X-CacheIndex', "-#{idx}-"]) + searchres = @connection.search(['HEADER', 'Message-Id', id]) flags = nil if searchres.length > 0 # we get the flags from the first result and delete everything diff --git a/lib/feed2imap/itemtomail.rb b/lib/feed2imap/itemtomail.rb index 00ce84f..ffa6b22 100644 --- a/lib/feed2imap/itemtomail.rb +++ b/lib/feed2imap/itemtomail.rb @@ -47,7 +47,7 @@ class String end end -def item_to_mail(item, index, updated, from = 'Feed2Imap', inline_images = false, wrapto = false) +def item_to_mail(item, id, updated, from = 'Feed2Imap', inline_images = false, wrapto = false) message = RMail::Message::new if item.creator and item.creator != '' if item.creator.include?('@') @@ -66,7 +66,7 @@ def item_to_mail(item, index, updated, from = 'Feed2Imap', inline_images = false message.header['Date'] = item.date.rfc2822 end message.header['X-Feed2Imap-Version'] = F2I_VERSION if defined?(F2I_VERSION) - message.header['X-CacheIndex'] = "-#{index}-" + message.header['Message-Id'] = id message.header['X-F2IStatus'] = "Updated" if updated # treat subject. Might need MIME encoding. subj = item.title or (item.date and item.date.to_s) or item.link -- cgit v1.2.3